
PureScript - paf31
http://github.com/paf31/purescript
======
beefsack
A relevant comparison would be to TypeScript, which has already picked up a
fair bit of steam:
[http://www.typescriptlang.org/](http://www.typescriptlang.org/)

~~~
paf31
Yes, I write an app in TypeScript at work. I generally like it a lot, but part
of the reason I created this was out of some frustration with its type system.

~~~
MilesTeg
TypeScript was obviously on your mind. The readme states 'Functions in
TypeScript can have zero or more arguments in general, just like in
Javascript.' You might want to change that to 'PureScript'

~~~
paf31
Well, it isn't incorrect ;)

------
GhotiFish
This is a bit like Fay, is it not? I'm not skilled enough in either languages
to cite the differences, though pureScript does not seem like it's strictly
adhering to haskell syntax.

~~~
paf31
There are some similarities, yes. There's a good discussion of the differences
here:
[http://www.reddit.com/r/haskell/comments/1pkzd0/show_reddit_...](http://www.reddit.com/r/haskell/comments/1pkzd0/show_reddit_my_weekend_project_purescript/)

Basically, I wrote this partly just for fun, but also because each of the
current options (Fay, Elm, Roy, TypeScript, etc.) all had some small feature I
wanted to change. The biggest factor for me was the generation of compact,
readable, debuggable Javascript.

------
strmpnk
Was anyone else a little disappointed to find that it was yet another Haskell
inspired language (like Fay, Roy, Elm, Lambdascript, ghcjs, &c)? I was really
hoping to find a version of Pure
[http://purelang.bitbucket.org](http://purelang.bitbucket.org) adapted for the
browser. It seems like a custom language that compiles to JavaScript is the
new standard Haskell pet project. For those wondering on what other JS powered
languages there are, check out [http://altjs.org](http://altjs.org).

------
nailer
You could make the examples more understandable by using non-minified variable
names. I'm not sure what 'itoa' ing something does, or what an 'o' is.

~~~
chrismonsanto
itoa would be familiar to any C programmer (Integer TO Ascii)

~~~
J_Darnley
I am familiar with atoi but I have never seen itoa, one of the printf family
is usually used. However looking it up, a few websites list the function but
clearly say that it isn't ANSI C.

------
eru
In pattern matching, how do you discriminate between literal patterns and
variables patterns? I'm especially curious about how `true' and `false' vs
`result' are handled.

~~~
paf31
This is handled in the parser. There are two productions, identifier and
reserved and the two don't intersect. Reserved identifiers like true and false
match more eagerly than regular identifiers.

------
kennyledet
Great work, and I will star it and follow progress, but I'd rather put more
efforts into learning new ECMAScript 6 stuff. I will definitely look more into
it after that though.

------
elwell
That first example is going to scare a lot of people away. What's with the
indentation and that semi-colon at the beginning of the line?

~~~
paf31
That style of indentation is more common in Haskell libraries, and I'm not
sure what you don't like about the whitespace.

