Brandon S Allbery KF8NH wrote:
On 7/16/10 05:21 , Andy Stewart wrote:
IMO, "haskell interpreter" is perfect solution for samll script job. But
i'm afraid "haskell interpreter" is slow for *large code*, i don't know,
i haven't try this way...

Hugs?

Or you can try implementing (or finding) a SASL interpreter[1]. SASL is just the untyped[2] lambda calculus with named functions. ADTs are implemented by function application, greatly simplifying the compiler/interpreter. On their benchmarks, the version presented in the paper is competitive with GHCi 6.4 and outperforms Hugs Jan2005.

Interpreting is always slower than compiled code. But how much that matters is a separate issue. Folks seem to like their Perl, Python, Ruby,... even for large projects.


[1] Jan Jansen (2005) /Data Types and Pattern Matching by Function Application/, Proc. 17th IFL.

[2] The version they present in the paper uses the untyped calculus since their pattern matching doesn't fit in Hindley--Milner. The problem is the need for a fixpoint type operator, and polymorphism under the fixpoint; thus, it fits perfectly fine in System F with iso-recursive types. So just turn on -XRankNTypes and use them directly:

    newtype List a = List { caseList
        :: forall r. r -> (a -> List a -> r) -> r }
    nil       = List (\n c -> n)
    cons x xs = List (\n c -> c x xs)

    length xs = caseList xs 0 (\x xs' -> 1 + length xs')

--
Live well,
~wren
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to