Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

It is not a real shell, since it misses basic pipes. It is just a library for renaming system functions to their Bash-like names...

Move on, and look at these:

* http://hackage.haskell.org/package/Shellac

* http://hackage.haskell.org/package/pipes-shell

* http://hackage.haskell.org/package/HSH

* http://hackage.haskell.org/package/shellish



> since it misses basic pipes

To be fair, you don't actually need them

  lelf:~/srcs/hell$ reverse <$> pwd
  "lleh/scrs/flel/sresU/"
But yes, right now it's just a bunch of renames.


The last 3 links are to shell-scripting libraries, which have a different goal than creating an interactive shell. I would recommend shelly, the library I created: https://hackage.haskell.org/package/shelly


Might note this was "whipped this up in a few hours". I suspect this is just an experiment. But I think this might evolve into something serious, lots of interest was expressed in /r/haskell.

On a serious side note, it doesn't need pipes since the shell utilities are wrapped as function which are composable in Haskell.


Wouldn't pipes be implemented as monads (arrows)? I think it'd be defeating the point to bolt on a Bourne shell convention for Haskell shell, when there's a native capability to be used...


I'm not sure of the types of the functions, but Haskell's arrow typeclass could do arrows in theory.


How does something this bad end up the top comment? Three out of four links you provided are completely irrelevant. It is not missing pipes. Pipes are a simple composition operator. Haskell already has that, no need to make a special version for this.


While it's true that you can't really pipe programs conveniently yet it sure supports composition with all functions as you suggest. Just wanted to note in case that was what the comment above was thinking about. Except that I pretty much agree with you, current top comment is crap.


Otherwise the syntax would live up to the shell's name.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: