Haskell Information and Resources

  • (2 Pages)
  • +
  • 1
  • 2

21 Replies - 10550 Views - Last Post: 16 November 2012 - 09:30 AM

#16 YamNad  Icon User is offline

  • D.I.C Head
  • member icon

Reputation: 9
  • View blog
  • Posts: 120
  • Joined: 11-July 09

Re: Haskell Information and Resources

Posted 01 March 2010 - 09:07 AM

Try Haskell
Was This Post Helpful? 0
  • +
  • -

#17 s243a  Icon User is offline

  • D.I.C Head

Reputation: 1
  • View blog
  • Posts: 137
  • Joined: 17-March 10

Re: Haskell Information and Resources

Posted 20 March 2010 - 11:13 AM

View PostShane Hudson, on 19 January 2010 - 11:54 AM, said:

As an information and resources thread.. it would be great if you could write something about what Haskell and functional languages are. I have been programming for the majority of my lifetime, yet to be honest I have no idea what they are (I will google it, but it would be useful to others to have a description here!)


If you are an information technologist, I presume that Scala, F# or Ruby would be relevant to you then Haskell. Scala is good for concurrent programming and was used by twitter to replace Rubby. It runs on the Java virtual machine and is interoperable with java. F# runs on the .Net common runtime environment and is interoperable with .Net and com components. Ruby is commonly used on server side web applications. I think the draw for Haskell is that it is so pure which makes it a great language for learning and it is also well suited for tasks that require that require parsing like building a compiler.

If your main focus is concurrent programing you might want to learn Erlang. Lisp is commonly used in in AI projects. There are several dialogs of Lisp which include: Scheme, Clojure and others. Clojure also runs on the the java virtual machine. I do not know if it as integrated with java as Scala but does have java interop capabilities. The other major group of functional languages are ML. These are impure functional languages like Lisp dialects which can make them easier to use for imperative programmers. OCaml is an example of a metta languages, and F# is suppose to be quite compatible with meta languages. Python is a popular multi paradigm languages that has some functional programing capabilities.
Was This Post Helpful? 0
  • +
  • -

#18 s243a  Icon User is offline

  • D.I.C Head

Reputation: 1
  • View blog
  • Posts: 137
  • Joined: 17-March 10

Re: Haskell Information and Resources

Posted 20 March 2010 - 01:11 PM

My understanding is that Parsers can be written quite compactly and concisely in Haskell. To me that makes the following tool quite interesting:

Quote

What is Happy?

Happy is a parser generator system for Haskell, similar to the tool `yacc' for C. Like `yacc', it takes a file containing an annotated BNF specification of a grammar and produces a Haskell module containing a parser for the grammar.

Happy is flexible: you can have several Happy parsers in the same program, and several entry points to a single grammar. Happy can work in conjunction with a lexical analyser supplied by the user (either hand-written or generated by another program), or it can parse a stream of characters directly (but this isn't practical in most cases).

As of version 1.5, Happy is capable of parsing full Haskell. We have a Haskell parser that uses Happy, which will shortly be part of the library collection distributed with GHC.

http://www.haskell.org/happy/#what
Was This Post Helpful? 0
  • +
  • -

#19 Raynes  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 611
  • View blog
  • Posts: 2,815
  • Joined: 05-January 09

Re: Haskell Information and Resources

Posted 21 March 2010 - 06:36 AM

View Posts243a, on 20 March 2010 - 10:13 AM, said:

View PostShane Hudson, on 19 January 2010 - 11:54 AM, said:

As an information and resources thread.. it would be great if you could write something about what Haskell and functional languages are. I have been programming for the majority of my lifetime, yet to be honest I have no idea what they are (I will google it, but it would be useful to others to have a description here!)


If you are an information technologist, I presume that Scala, F# or Ruby would be relevant to you then Haskell. Scala is good for concurrent programming and was used by twitter to replace Rubby. It runs on the Java virtual machine and is interoperable with java. F# runs on the .Net common runtime environment and is interoperable with .Net and com components. Ruby is commonly used on server side web applications. I think the draw for Haskell is that it is so pure which makes it a great language for learning and it is also well suited for tasks that require that require parsing like building a compiler.

If your main focus is concurrent programing you might want to learn Erlang. Lisp is commonly used in in AI projects. There are several dialogs of Lisp which include: Scheme, Clojure and others. Clojure also runs on the the java virtual machine. I do not know if it as integrated with java as Scala but does have java interop capabilities. The other major group of functional languages are ML. These are impure functional languages like Lisp dialects which can make them easier to use for imperative programmers. OCaml is an example of a metta languages, and F# is suppose to be quite compatible with meta languages. Python is a popular multi paradigm languages that has some functional programing capabilities.


Clojure is more interoperable with Java than Scala is, and arguably more suited to concurrency than Scala is, thanks to STM and such. Lisp isn't just AI anymore. Clojure and Erlang are great for concurrency, but Haskell is pretty awesome in that area as well.

Python is a pretty neat language, but it's functional programming capabilities leave much to be desired, mostly because the creator of the language is against Functional Programming without good reason.
Was This Post Helpful? 0
  • +
  • -

#20 s243a  Icon User is offline

  • D.I.C Head

Reputation: 1
  • View blog
  • Posts: 137
  • Joined: 17-March 10

Re: Haskell Information and Resources

Posted 22 April 2010 - 08:41 PM

Arrows allow more efficient parsers then Monads. They are for instance used in the haskell package XHT which is an xml parser.

GHC has a fairly good description of arrows:

http://www.haskell.o...w-notation.html

But it doesn't explain some things such as the arrow loop or arrow apply class. The following paper may be helpful:

http://www.cs.chalme.../afp-arrows.pdf

I'm about to read it now.
Was This Post Helpful? 0
  • +
  • -

#21 s243a  Icon User is offline

  • D.I.C Head

Reputation: 1
  • View blog
  • Posts: 137
  • Joined: 17-March 10

Re: Haskell Information and Resources

Posted 23 April 2010 - 02:49 PM

Here is a list of compilers and interpreters related to Haksell. This link not only included haskell compilers and interpreters but compilers and interpreters written in Haskell. For instance there is a lisp interpreter written in Haskell. It also includes links to several extensions of Haskel such as Timber.

Applications and libraries/Compilers and interpreters
http://www.haskell.o...nd_interpreters
Was This Post Helpful? 0
  • +
  • -

#22 modi123_1  Icon User is offline

  • Suitor #2
  • member icon



Reputation: 9091
  • View blog
  • Posts: 34,142
  • Joined: 12-June 08

Re: Haskell Information and Resources

Posted 16 November 2012 - 09:30 AM

Derp.. should have put it here.

Why Haskell?

Quote

Being a purely functional language, Haskell limits you from many of the conventional methods of programming in an object-oriented language. But does limiting programming options truly offer us any benefits over other languages?

In this tutorial, we’ll take a look at Haskell, and attempt to clarify what it is, and why it just might be worth using in your future projects.

Was This Post Helpful? 0
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2