453 karma · joined November 5, 2010
[ my public key: https://keybase.io/taylorfausak; my proof: https://keybase.io/taylorfausak/sigs/A2PCjgr2EDNNESDi2ULoiDl4L7q-8NB0hCGk2pnfCSY ]
https://www.reddit.com/r/haskell/comments/5l0a2i/rasa_modula...
https://www.reddit.com/r/haskell/comments/5l0a2i/rasa_modula...
> If anyone wants to contribute a BNF, please do! But I'm very skeptical that it can be done, due to the many quirks of the syntax.
https://github.com/jgm/CommonMark/issues/113#issuecomment-60...
[1]: http://www.purescript.org/ [2]: https://github.com/ghcjs/ghcjs
[1]: https://github.com/elm-lang/elm-platform/blob/11c8ecb81a58b8...
class (HasMap f) <= Functor f
class (Functor f, HasApply f) <= Apply f
class (Apply f, HasPure f) <= Applicative f
class (Apply m, HasChain m) <= Bind m
class (Applicative m, Bind m) <= Monad m
[1]: https://github.com/tfausak/purescript-neon/blob/v0.5.4/src/N...
[2]: https://pursuit.purescript.org/packages/purescript-prelude/1... {-# LANGUAGE DuplicateRecordFields #-}
data A = B { x :: Bool }
| C { x :: Int }
Example.hs:2:1: error:
• Constructors B and C give different types for field ‘x’
• In the data type declaration for ‘A’Specifically related to language extensions, there is this wiki page: https://github.com/purescript/purescript/wiki/Differences-fr...
> The PureScript compiler does not support GHC-like language extensions.
I picked scoped type variables as an example because it's been in GHC since version 6.4. That was released in March 2005, so it had plenty of time to make it into the Haskell2010 language standard.
Convenient, widely-used extensions that have been around for a long time aren't yet part of the language standard: https://prime.haskell.org/ticket/67
> It seems like my progression as a Haskeller results in forcing myself to write in a harder-to-parse style to make my code shorter, to satisfy some base need for "better" code, even though by most measurements I just made, the longer/explicit/pattern matching code is in fact better.
> Stackage solved the consistent set of packages, and Stack made it even easier. I now consider Haskell package management a strength for large projects, not a risk.
connectWords = \ firstWord -> \ secondWord -> firstWord ++ secondWordNo it doesn't. The explicitly talk about this in section 7: "The acceptance of Typed Racket in the commercial and open-source Racket community suggests that (some) programmers find a way around the performance bottlenecks of sound gradual typing."
> Reticulated Python is still an order of magnitude faster than Ruby
Are you suggesting that a slower variant of Python is ten times faster than Ruby? That doesn't match my experience. For what it's worth, Ruby outperforms Python in some benchmarks: http://benchmarksgame.alioth.debian.org/u64q/ruby.html
[1]: https://www.haskell.org/hoogle/?hoogle=%3E%3D%3E [2]: http://hayoo.fh-wedel.de/?query=%3E%3D%3E
head : List a -> Maybe a
Compare that with the same function in Haskell. head :: [a] -> a
To me, the Elm version makes more sense. (It also avoids having to explain that "[a]" means "list of 'a's".)