The prototype package
prototype-based programming on Haskell
You can download source codes by git.
git clone git://github.com/YoshikuniJujo/prototype.git prototype
Example code
module Main where import Control.Prototype main :: IO () main = flip evalProt initProtEnv $ do ( dog, setName, sit ) <- package "dog" $ do dog <- clone object name <- makeMember "name" setName <- makeMember "setName" sit <- makeMember "sit" setMethod dog setName $ \this [ n ] -> do setMember this name n return [ ] setMethod dog sit $ \this _ -> do n <- member this name liftProt $ putStrLn $ fromPrimStr n ++ " sitting." return [ ] return ( dog, setName, sit ) myDog <- clone dog method myDog setName [ primStr "John" ] method myDog sit [ ] return ()
Another sample
module Main where import MyToolkit main :: IO () main = runToolKit $ do ( textView, setText, setContentView ) <- importMyToolkit myTV <- clone textView method myTV setText [ primStr "Hello, world!" ] method myTV setContentView [ ] return ()
Properties
| Versions | 0.1, 0.2, 0.3, 0.4.1, 0.5.0, 0.5.3 |
|---|---|
| Dependencies | base (>3 & <5), monads-tf |
| License | BSD3 |
| Author | Yoshikuni Jujo <PAF01143@nifty.ne.jp> |
| Maintainer | Yoshikuni Jujo <PAF01143@nifty.ne.jp> |
| Stability | experimental |
| Category | Development |
| Upload date | Mon Aug 15 05:51:38 UTC 2011 |
| Uploaded by | YoshikuniJujo |
| Built on | ghc-7.2 |
Modules
- Control
Downloads
- prototype-0.5.3.tar.gz (Cabal source package)
- package description (included in the package)