[Haskell] ANNOUNCE: Phooey -- a Functional UI library for Haskell

Conal Elliott conal at conal.net
Wed Dec 13 15:33:19 EST 2006


Hi Neil,

Thanks for the pointer.  From first skim-through at some PropLang library &
example code, I'm not seeing much similarity between the two systems.
GuiHaskell looks nifty.   Cheers,  - Conal

On 12/13/06, Neil Mitchell <ndmitchell at gmail.com> wrote:
>
> Hi,
>
> > Thanks for your comments, Steve.  They're getting me closer to a clear
> > explanation, which will be helpful in the paper I'm writing.
>
> I was going to polish up PropLang before releasing it, but if you're
> writing a paper, and I go and release PropLang just after you've put
> the finishing touches on it, you'll hunt me down and kill me :)
>
> As such, here is an announcement that PropLang exists, and is cool.
>
> See the darcs repo: http://www.cs.york.ac.uk/fp/darcs/proplang/ - and
> hopefully see some documentation in the future :)
>
> No arrows, but seems to have the same underlying idea.
>
> The darcs repo has a text editor (it had another sample, I'm sure, but
> I can't see it!)
>
> Some selected hilights:
>
>     -- CREATE VARIABLES
>
>     -- is a document open
>     document <- newVar False
>
>     -- is a document modified
>     modified <- newVar False
>
>     -- the filename of the document, if its been saved
>     filename <- newVar Nothing
>
>     -- SET UP RELATIONS BETWEEN PROPERTIES
>     txt!enabled =<= document
>     new!enabled =< with1 document not
>     saveas!enabled =< with2 document modified (&&)
>     --save!enabled =< with2 document modified (&&)
>     save!enabled =< (&&) =$$= document =$= modified
>     close!enabled =<= document
>     revert!enabled =<= modified
>
>     -- SUPPORTS EVENTS TOO
>     new!onClicked += newDocument gui
>     save!onClicked += saveDocument gui
>     saveas!onClicked += saveAsDocument gui
>     close!onClicked += closeDocument gui
>     open!onClicked += openDocument gui
>
>     -- COOL AND SIMPLE UNDO
>     revert!onClicked += (txt!text -<- lasttxt)
>
>     modified =< with2 (txt!text) (lasttxt) (/=)
>
>     let titleformat d m f = "TextEditor" ++
>                             (if d then " - " ++ maybe "<untitled>" id
> f else "") ++
>                             (if m then " *" else "")
>
>     -- REALLY COOL SETTING OF THE TITLE AUTOMATICALLY
>     window!text =< titleformat =$$= document =$= modified =$=  filename
>
>     -- CREATE A STATUS BAR WITH THE WORD COUNT IN ONE LINE!
>     sb!text =< (\x -> "Word count: " ++ show (length $ words x)) =$$=
> txt!text
>
> I'll write up a tutorial or something at some point.
>
> It's written using Gtk2Hs, and works fine on both Linux and Windows.
> GuiHaskell is written using this:
> http://www-users.cs.york.ac.uk/~ndm/projects/guihaskell.php
>
> Thanks
>
> Neil
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell/attachments/20061213/cc0f2339/attachment.htm


More information about the Haskell mailing list