- Pattern matching is a sexy feature that is way needed in compile to JS languages
- Using an actual lambda character is way badass.
- Same goes for the inbuilt PhantomJS & Closure support
- I like these cute type definitions: (Num | String) -> String.
- Tail recursion f-yeah
- I agree with other poster about "hard to google". Not to be a "backseat brander", but something like forml has the ML in there as a shoutout as well as being easier to find.
- I like that even though you are compile-to-JS, you are not "of" JS. Pragmatic, yet forward-thinking.
Do you see take any hints/inspiration from other coffescript compilers (livescript, icedcoffeescript, contracts, etc.)? I do like how livescript has a standard prelude and you might want to consider that [edit: on closer read, just saw you do have a prelude. F-yeah again].
Also, does implementing lazy/infinite lists/functions seem possible to you or is that a giant undertaking? [edit: again on read another doc, just saw you do have infinite sequences, so congrats on the completeness of your language.]
Not even close to one weekend - I meant "weekend" in the tongue-in-cheek sense that all good weekend hacks spill over into multiple years.
[Write yourself a scheme in 48 hours](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H...) was very helpful for seeing a compile interpreter at a high level, [Typing Haskell in Haskell](http://web.cecs.pdx.edu/~mpj/thih/) was a fantastic resource for implementing DHM - the NYC Haskell community was fantasically helpful as well. Best way to learn anything in Haskell, or any language IMO, is to just start writing it :)
cool. it looks like you've cleaned up the verbose syntax? what are you planning on adding that's new? do you support the whole module/interface hoohaa from sml? are you going to explore (given js target) prototype-based oo in some way? are you thinking of pulling in ideas from ocaml? or some cool new type hackery from haskell?
I think the parameterized modules would be nice, and a natural extension since modules as implemented are technically "first class" - but I'm intentionally shying away from Haskell-level type checking. Ultimately, I'd like the type system to be more of a tool for preventing bugs, rather than a requirement to "prove" that your code is correct.
No current plans for any compiler level prototyping, but some of this could be accomplished via the existing type system - it would be nice to have some sort of record field unification/discrimination at the type level, to allow you to do something like `{ fields_1 } -> {fields_2 } -> { fields_1 && fields_2 }`, but I haven't thought this through entirely yet. Thanks for the feedback!
- Pattern matching is a sexy feature that is way needed in compile to JS languages
- Using an actual lambda character is way badass.
- Same goes for the inbuilt PhantomJS & Closure support
- I like these cute type definitions: (Num | String) -> String.
- Tail recursion f-yeah
- I agree with other poster about "hard to google". Not to be a "backseat brander", but something like forml has the ML in there as a shoutout as well as being easier to find.
- I like that even though you are compile-to-JS, you are not "of" JS. Pragmatic, yet forward-thinking.
Do you see take any hints/inspiration from other coffescript compilers (livescript, icedcoffeescript, contracts, etc.)? I do like how livescript has a standard prelude and you might want to consider that [edit: on closer read, just saw you do have a prelude. F-yeah again].
Also, does implementing lazy/infinite lists/functions seem possible to you or is that a giant undertaking? [edit: again on read another doc, just saw you do have infinite sequences, so congrats on the completeness of your language.]