Re: [Haskell-cafe] Features of Haskell

2006-06-09 Thread Tracy R Reed
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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell

2006-06-09 Thread 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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell

2006-06-09 Thread 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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell

2006-06-09 Thread 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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell]

2006-06-05 Thread Bernard James POPE
On Sun, Jun 04, 2006 at 11:21:23AM +0200, Niels Van Och wrote:

[snip]

 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?

Hi Niels,

15-20 mins isn't much time, so I would get straight to the point.
I wouldn't bother introducing the syntax, just explain it as you go,
to save time.

I've always liked zipWith as an example for _short_ presentations.

It is higher-order, polymorphic, and lazy. 

The classic fibonacci generator comes to mind as a cute example [1].
   fibs = 0 : 1 : zipWith (+) fibs (tail fibs)

If you want to show overloading and monads then you can extend it to
zipWithM.

You'll probably want to argue why all of the features you mentioned are
important for real programming problems (not fibs). John Hughes' paper
Why Functional Programming Matters is a good source of material.

You might also like to argue that one of Haskell's strengths is that it
is built up from a very small core language (the lambda calculus plus let).
Higher-order functions, a good type system, and lazyness, allow many powerful
features to be included in the programmer's toolkit without having to 
change the underlying core. For example, list comprehensions are simply 
syntax sugar, rather than some fundamentally new gadget. You might say
Haskell takes abstraction and composition very seriously. 

To make your talk more even-handed, you might like to mention some of
the outstanding problems faced by Haskell programmers. For instance, 
while we seem to have a good handle on the declarative side of programming,
the operational side can be troublesome. Witness: space leaks and deepseq.
The foldl leak is a possible example:
   sum = foldl (+) 0

Now some people might complain Sure, Haskell looks nice in theory, but
the proof is in the pudding; where's the pudding?. You might like to 
toss in a few examples of real world Haskell programs at the end, as a 
kind of pre-emptive strike against the non-believers. With some kind of note 
as to why Haskell was useful. Darcs and Pugs come to mind. 

As usual, all of this is qualified by the usual proviso: It depends who
your audience is. Add salt or sugar to taste.

Hope that is of some help,
Bernie.

[1] Though, depending on your audience, this might be like playing
Stairway to Heaven in a guitar shop. 
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell

2006-06-05 Thread Stefan Holdermans

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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Features of Haskell

2006-06-04 Thread 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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell

2006-06-04 Thread Robin Green
On Sun, 4 Jun 2006 11:21:23 +0200
Niels Van Och [EMAIL PROTECTED] 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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell

2006-06-04 Thread Jared Updike

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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell

2006-06-04 Thread Dylan Thurston
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


signature.asc
Description: Digital signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Features of Haskell

2006-06-04 Thread 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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe