Features of Haskell

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Features of Haskell

Niels Van Och
Hi,

I'm a Master student in Computer Science, and for my bachelor thesis,  
I've written 'an introduction to Haskell'. In this document, I've  
discussed syntax, evaluation, polymorphism, monads etc.

Now, in a week I have to present this work formally, and I'm a bit  
stumped as to how I'm going to do this. I've got about 15-20 minutes,  
so I can only discuss the major features. Right now I'm thinking about:

- Short introduction to functional programming, and Haskell in it
- Basic syntax in a few minutes
- Features like polymorphism, overloading, higher-order functions,  
comprehensions, ..
- Lazy evaluation
- Monads: why and how?

However, I'd love to know what you think. Furthermore, do you think I  
should include an example on the usage of Haskell, and if so, which?

Many thanks!
Niels
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

greenrd
On Sun, 4 Jun 2006 11:21:23 +0200
Niels Van Och <[hidden email]> wrote:
> However, I'd love to know what you think. Furthermore, do you think
> I should include an example on the usage of Haskell, and if so, which?

I have an idea. Find some real code in another language which uses
lots of state - so much state, in fact, that it's a pain to unit test
or debug the code because you have to set up lots of state. Then, sketch
an outline of how this code could be rewritten into Haskell,
so that state updates are contained within monads or eliminated
altogether, and perhaps separating the different tasks the code does
into different functions. Then illustrate how this can make testing and
debugging easier.
--
Robin
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

Jared Updike
In reply to this post by Niels Van Och
> stumped as to how I'm going to do this. I've got about 15-20 minutes,
> so I can only discuss the major features.

I was always impressed with Autrijus Tang's presentation here:
  http://www.pugscode.org/euroscon/haskell.xul     (view with Firefox
or other Gecko-based browser)

I think he managed to explain very effectively what made Haskell
special, including major features/differences/paradigms, as well as
syntax, all at once. I did read the slides as one familiar with
Haskell so I can't say how it would come across to one unfamiliar with
Haskell (which was his target audience), but maybe his presentation
will help give you ideas.

Best of luck!
  Jared.

--
http://www.updike.org/~jared/
reverse ")-:"
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

Dylan Thurston-3
On Sun, Jun 04, 2006 at 05:17:02PM -0700, Jared Updike wrote:
> >stumped as to how I'm going to do this. I've got about 15-20 minutes,
> >so I can only discuss the major features.
>
> I was always impressed with Autrijus Tang's presentation here:
               ^^^^^^^^ Audrey

> I think he managed to explain very effectively what made Haskell
     ^^ she

Peace,
        Dylan Thurston

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe

signature.asc (196 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

Jared Updike
> On Sun, Jun 04, 2006 at 05:17:02PM -0700, Jared Updike wrote:
> > >stumped as to how I'm going to do this. I've got about 15-20 minutes,
> > >so I can only discuss the major features.
> >
> > I was always impressed with Autrijus Tang's presentation here:
>                               ^^^^^^^^ Audrey
> > I think he managed to explain very effectively what made Haskell
>           ^^ she

Yep.. My bad.

Cheers,
  Jared.

--
http://www.updike.org/~jared/
reverse ")-:"
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

Stefan Holdermans
In reply to this post by Niels Van Och
Niels,

Maybe reading these papers will give you some inspiration:

   John Hughes. Why functional programming matters. The Computer  
Journal, 32(2):98--107, 1989. [http://www.math.chalmers.se/~rjmh/ 
Papers/whyfp.html]

   Mark P. Jones. Functional programming with overloading and higher-
order polymorphism. In Johan Jeuring and Erik Meijer, editors,  
Advanced Functional Programming, First International Spring School on  
Advanced Functional Programming Techniques,
Baastad, Sweden, May 24–30, 1995, Tutorial Text, volume 925 of  
Lecture Notes in Computer Science, pages 97--136. Springer-Verlag,  
1995. [http://www.cse.ogi.edu/~mpj/pubs/springschool.html]

HTH,

   Stefan
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

Tracy Reed-3
In reply to this post by Jared Updike
Jared Updike wrote:
> I was always impressed with Autrijus Tang's presentation here:
>   http://www.pugscode.org/euroscon/haskell.xul     (view with Firefox
> or other Gecko-based browser)
>  

Unfortunately, this presentation alone is incomprehensible to someone
who does not know Haskell.  I suspect it would do much better with
audio. I think Haskell really needs something like

http://oodt.jpl.nasa.gov/better-web-app.mov

and

http://ia301106.us.archive.org/1/items/SeanKellyGettingYourFeetWetwithPlone/wetfeet.mov

to make the point. Sean Kelly's screencasts made a big impression and
have been very widely downloaded and have really done a lot to promote
Plone in recent months.

--
Tracy R Reed
http://ultraviolet.org

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

Clifford Beshers
Tracy R Reed wrote:
Jared Updike wrote:
  
I was always impressed with Autrijus Tang's presentation here:
  http://www.pugscode.org/euroscon/haskell.xul     (view with Firefox
or other Gecko-based browser)
  
    

Unfortunately, this presentation alone is incomprehensible to someone
who does not know Haskell.  I suspect it would do much better with
audio. I think Haskell really needs something like

http://oodt.jpl.nasa.gov/better-web-app.mov

and

http://ia301106.us.archive.org/1/items/SeanKellyGettingYourFeetWetwithPlone/wetfeet.mov

to make the point. Sean Kelly's screencasts made a big impression and
have been very widely downloaded and have really done a lot to promote
Plone in recent months.
  
Interesting.  I just gave a talk to the SGVLUG (San Gabriel Valley Linux Users Group, which is centered at Cal Tech).  It was the first time I've given such a talk, half about Linspire/Freespire, half about Haskell features, and the other three halves were technical problems.

I looked at Tang's presentation as well, and while there were parts that I thought wonderful (the definition of fibonacci with parallel list comprehension, for example), I thought that most of it would go right past an audience of beginners.

I didn't get a chance to practice my talk beforehand, so there were rough spots, but in general I felt they got as much as could be expected in a whirlwind tour.  Of course, I lost them completely at the IO monad.

Writing the slides, I found that it is hard to disentangle all the concepts and build from the ground up.  Those of us who use it have forgotten just how many new concepts there are and how tightly bound together they are in Haskell.  As always, when you try to teach something you get a deeper understanding of it.  I'll see if I can't clean up some of the examples with hindsight and send it along to you and see what you think.

Cliff


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

John Meacham
<ramble>

On Fri, Jun 09, 2006 at 02:16:47AM -0700, Clifford Beshers wrote:
> Interesting.  I just gave a talk to the SGVLUG (San Gabriel Valley Linux
> Users Group, which is centered at Cal Tech).  It was the first time I've
> given such a talk, half about Linspire/Freespire, half about Haskell
> features, and the other three halves were technical problems.

Oh, I live a block from Caltech, I didn't know there was a Haskell talk
there.

> Writing the slides, I found that it is hard to disentangle all the
> concepts and build from the ground up.  Those of us who use it have
> forgotten just how many new concepts there are and how tightly bound
> together they are in Haskell.  As always, when you try to teach
> something you get a deeper understanding of it.  I'll see if I can't
> clean up some of the examples with hindsight and send it along to you
> and see what you think.

I always prefered using a chalkboard (or whiteboard, or overhead +
markers) instead of a pre-prepared slideshow when giving talks. it lets
me change the focus depending on audience reaction and questions more.
If you can get away with it, I'd recommend it for future talks, ignore
anyone that says it is not profesional, they wouldn't have paid
attention anyway to anything other than your font choices and choice of
screen-wipes between slides.

        John

</ramble>

--
John Meacham - ⑆repetae.net⑆john⑈
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Features of Haskell

Clifford Beshers
John Meacham wrote:
<ramble>

On Fri, Jun 09, 2006 at 02:16:47AM -0700, Clifford Beshers wrote:
  
Interesting.  I just gave a talk to the SGVLUG (San Gabriel Valley Linux 
Users Group, which is centered at Cal Tech).  It was the first time I've 
given such a talk, half about Linspire/Freespire, half about Haskell 
features, and the other three halves were technical problems.
    

Oh, I live a block from Caltech, I didn't know there was a Haskell talk
there. 
  
Dang!  I referenced your 'small but featureful grep' as an example of how Haskell should help reduce the need for `little languages' and two-level languages.  I promised to come back in six months or so and talk about the progress we've made on development tools for Freespire.  I'll let you know.
  
Writing the slides, I found that it is hard to disentangle all the 
concepts and build from the ground up.  Those of us who use it have 
forgotten just how many new concepts there are and how tightly bound 
together they are in Haskell.  As always, when you try to teach 
something you get a deeper understanding of it.  I'll see if I can't 
clean up some of the examples with hindsight and send it along to you 
and see what you think.
    

I always prefered using a chalkboard (or whiteboard, or overhead +
markers) instead of a pre-prepared slideshow when giving talks. it lets
me change the focus depending on audience reaction and questions more.
If you can get away with it, I'd recommend it for future talks, ignore
anyone that says it is not profesional, they wouldn't have paid
attention anyway to anything other than your font choices and choice of
screen-wipes between slides.
  
If I had been doing a tutorial, I might have done that, but I was doing a whirlwind tour where the goal was to get people excited. Also, I find that the first time presenting some information, I do better if I lay it out before hand.  Explanation of code is a different beast than creation of it.


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe