DeepArrow
From HaskellWiki
(→Abstract: history & use links) |
m ("I" makes more sense if you know that Conal wrote this page, so...) |
||
| Line 31: | Line 31: | ||
* [http://haskell.org/haskellwiki/TV TV] has the algebra of ''composable interfaces'', or visualizations of pure values, and it has ''tangible values'', which are separable combinations of interface and value. It uses Phooey to generate GUIs very simply from interfaces. | * [http://haskell.org/haskellwiki/TV TV] has the algebra of ''composable interfaces'', or visualizations of pure values, and it has ''tangible values'', which are separable combinations of interface and value. It uses Phooey to generate GUIs very simply from interfaces. | ||
| + | -- [[User:Conal|Conal Elliott]] | ||
[[Category:Libraries]] | [[Category:Libraries]] | ||
[[Category:Arrow]] | [[Category:Arrow]] | ||
[[Category:Combinators]] | [[Category:Combinators]] | ||
Revision as of 16:42, 12 January 2008
Contents |
1 Abstract
The DeepArrow library is a framework for composable "editors" of pure values.
Besides this wiki page, here are more ways to learn about DeepArrow:
- Read the Haddock docs (with source code & Comment/Talk links)
- Get the code repository: darcs get http://darcs.haskell.org/packages/DeepArrow
- Or grab a distribution tarball.
- See the version history.
- See the use of DeepArrow in TV and Eros.
Please leave comments at the Talk page.
2 Introduction
By an "editor", I mean a function that targets a transformation at some part of a value, such as the first half of the second half of a value of type3 Examples
See example docs in the library documentation and follow the source code links.
4 Background
The inspiration for value-editing paths came while I was looking for a way for non-programmers to be able to create functional images. I've had a growing intuition over the last fifteen years that media authoring tools can be usefully looked at as environments for functional programming. I'd been wondering how to map a user's gestures into operations on a functional program. Lots of noodling led to ideas of composable interfaces and "tangible values" (term thanks to Sean Seefried) and gestural composition in Eros.
Eros was more complicated than I like, so I started splitting it into pieces:
- Phooey is a functional GUI library that has much of Eros's GUI implementation techniques, but much more carefully structured than in the Eros paper.
- DeepArrow has the general notion of "deep application".
- TV has the algebra of composable interfaces, or visualizations of pure values, and it has tangible values, which are separable combinations of interface and value. It uses Phooey to generate GUIs very simply from interfaces.
