
Hi all, I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible? It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one! -- /jve

vanenkj:
Hi all,
I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible?
It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one!
Boil down SimonPJ's OSCON talk? "A taste of Haskell" http://research.microsoft.com/en-us/um/people/simonpj/papers/haskell-tutoria...

Just please don't show them qsort and fibonacci!
2009/5/18 John Van Enk
Hi all,
I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible?
It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one! -- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Eugene Kirpichov Web IR developer, market.yandex.ru

Use an incredibly small font.
On Mon, May 18, 2009 at 8:16 AM, John Van Enk
Hi all,
I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible?
It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one!
-- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Use an incredibly small font AND Haskell FRP [1] to zoom and enlarge
the font as you move your mouse over the text. ;)
1. http://en.wikipedia.org/wiki/Functional_reactive_programming
--
Donnie Jones
On Mon, May 18, 2009 at 10:56 AM, David Leimbach
Use an incredibly small font.
On Mon, May 18, 2009 at 8:16 AM, John Van Enk
wrote: Hi all,
I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible?
It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one! -- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

While an incredibly small font is a clever option, a more serious suggestion may be as follows. 3-4 slides imply 3-4 topics, so the question is what are the 3-4 biggest topics in haskell? I would think they would be: * Purity/Referential Transparency * Lazy Evaluation * Strong Typing + Type Classes * Monads Assuming you have, say, 10-15 minutes for the talk, and the people there are versed with imperative programming and maybe have some experience in functional programming, you can probably jump over each of those slides in about a minute, just enough to touch the subject. I also assume that you don't need to fit the whole presentation in 3-4 slides, if you do, then .... yah. /Joe David Leimbach wrote:
Use an incredibly small font.
On Mon, May 18, 2009 at 8:16 AM, John Van Enk
mailto:vanenkj@gmail.com> wrote: Hi all,
I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible?
It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one!
-- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org mailto:Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
------------------------------------------------------------------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Thanks Joe,
Your assumption is correct--the whole presentation will be longer. I wanted
to use 3 or 4 slides to introduce the language and the balance for the
interesting stuff. :P
/jve
PS to Joe: I will not forget to reply to all. I will not forget to reply to
all. I will not forget to reply to all. There, hopefully I won't forget any
more. :)
On Mon, May 18, 2009 at 12:29 PM, Joe Fredette
While an incredibly small font is a clever option, a more serious suggestion may be as follows.
3-4 slides imply 3-4 topics, so the question is what are the 3-4 biggest topics in haskell? I would think they would be:
* Purity/Referential Transparency * Lazy Evaluation * Strong Typing + Type Classes * Monads
Assuming you have, say, 10-15 minutes for the talk, and the people there are versed with imperative programming and maybe have some experience in functional programming, you can probably jump over each of those slides in about a minute, just enough to touch the subject.
I also assume that you don't need to fit the whole presentation in 3-4 slides, if you do, then .... yah.
/Joe
David Leimbach wrote:
Use an incredibly small font.
On Mon, May 18, 2009 at 8:16 AM, John Van Enk
> wrote: Hi all, I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible? It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one!
-- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org mailto:Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
------------------------------------------------------------------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- /jve

Don't forget to include higher-order functions in one of those important
points.
On Mon, May 18, 2009 at 12:36 PM, John Van Enk
Thanks Joe,
Your assumption is correct--the whole presentation will be longer. I wanted to use 3 or 4 slides to introduce the language and the balance for the interesting stuff. :P
/jve
PS to Joe: I will not forget to reply to all. I will not forget to reply to all. I will not forget to reply to all. There, hopefully I won't forget any more. :)
On Mon, May 18, 2009 at 12:29 PM, Joe Fredette
wrote: While an incredibly small font is a clever option, a more serious suggestion may be as follows.
3-4 slides imply 3-4 topics, so the question is what are the 3-4 biggest topics in haskell? I would think they would be:
* Purity/Referential Transparency * Lazy Evaluation * Strong Typing + Type Classes * Monads
Assuming you have, say, 10-15 minutes for the talk, and the people there are versed with imperative programming and maybe have some experience in functional programming, you can probably jump over each of those slides in about a minute, just enough to touch the subject.
I also assume that you don't need to fit the whole presentation in 3-4 slides, if you do, then .... yah.
/Joe
David Leimbach wrote:
Use an incredibly small font.
On Mon, May 18, 2009 at 8:16 AM, John Van Enk
> wrote: Hi all, I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible? It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one!
-- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org mailto:Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
------------------------------------------------------------------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Actually, I don't think it's a good idea to introduce monads on one of
the 3-4 slides. While it *is* a core concept, it's not one of the
advertising "bullet points"; and 1 slide is not enough to show what
*use* monads are, let alone what they actually *are*.
I'd probably suggest you to show something parallelism-related on that
slide: for example, STM. Showing an "atomically do foo" and saying
"And here, we atomically do foo" may turn out impressive :)
And yes, of course HOF's.
Also, on the Strong Typing slide, probably you could fit in an
algebraic datatype and a smallish function over it in pattern-matched
style.
2009/5/18 Joe Fredette
While an incredibly small font is a clever option, a more serious suggestion may be as follows.
3-4 slides imply 3-4 topics, so the question is what are the 3-4 biggest topics in haskell? I would think they would be:
* Purity/Referential Transparency * Lazy Evaluation * Strong Typing + Type Classes * Monads
Assuming you have, say, 10-15 minutes for the talk, and the people there are versed with imperative programming and maybe have some experience in functional programming, you can probably jump over each of those slides in about a minute, just enough to touch the subject.
I also assume that you don't need to fit the whole presentation in 3-4 slides, if you do, then .... yah.
/Joe
David Leimbach wrote:
Use an incredibly small font.
On Mon, May 18, 2009 at 8:16 AM, John Van Enk
mailto:vanenkj@gmail.com> wrote: Hi all, I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible? It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one!
-- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org mailto:Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
------------------------------------------------------------------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Eugene Kirpichov Web IR developer, market.yandex.ru

Well, since the topic was EDSLs, and those generally involve monads (at least from what I've seen), it might be wise to touch on them. However, perhaps the fourth slide would just be a catchall? HOFs, some STM/Monad stuff, etc? The topics I suggested just seem to me to be the 4 core concepts you must understand to use haskell effectively. /joe Eugene Kirpichov wrote:
Actually, I don't think it's a good idea to introduce monads on one of the 3-4 slides. While it *is* a core concept, it's not one of the advertising "bullet points"; and 1 slide is not enough to show what *use* monads are, let alone what they actually *are*.
I'd probably suggest you to show something parallelism-related on that slide: for example, STM. Showing an "atomically do foo" and saying "And here, we atomically do foo" may turn out impressive :)
And yes, of course HOF's.
Also, on the Strong Typing slide, probably you could fit in an algebraic datatype and a smallish function over it in pattern-matched style.
2009/5/18 Joe Fredette
: While an incredibly small font is a clever option, a more serious suggestion may be as follows.
3-4 slides imply 3-4 topics, so the question is what are the 3-4 biggest topics in haskell? I would think they would be:
* Purity/Referential Transparency * Lazy Evaluation * Strong Typing + Type Classes * Monads
Assuming you have, say, 10-15 minutes for the talk, and the people there are versed with imperative programming and maybe have some experience in functional programming, you can probably jump over each of those slides in about a minute, just enough to touch the subject.
I also assume that you don't need to fit the whole presentation in 3-4 slides, if you do, then .... yah.
/Joe
David Leimbach wrote:
Use an incredibly small font.
On Mon, May 18, 2009 at 8:16 AM, John Van Enk
mailto:vanenkj@gmail.com> wrote: Hi all, I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible? It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one!
-- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org mailto:Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
------------------------------------------------------------------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

ekirpichov:
Actually, I don't think it's a good idea to introduce monads on one of the 3-4 slides. While it *is* a core concept, it's not one of the advertising "bullet points"; and 1 slide is not enough to show what *use* monads are, let alone what they actually *are*.
I'd probably suggest you to show something parallelism-related on that slide: for example, STM. Showing an "atomically do foo" and saying "And here, we atomically do foo" may turn out impressive :)
Exactly: focus on what the user wants to do (e.g. write multicore code, write safe code, write code quickly), not how that is achieved: "bounded parametric polymorphism" or "monads"

On Mon, May 18, 2009 at 2:06 PM, Don Stewart
Exactly: focus on what the user wants to do (e.g. write multicore code, write safe code, write code quickly), not how that is achieved: "bounded parametric polymorphism" or "monads"
Parametric polymorphism is a big win, and highlights something a user wants to do. A *shallow* overview (one bullet, one function) might fit. Off the top of my head: incr :: (Num a) => a -> a incr = (+ 1) Writing that operation in other languages is either (a) repeated for every numeric type or (b) not typesafe. Haskell is one of the few that delivers both, and that is worth underscoring. And it gives you an opportunity to wave your hands and talk about type inferencing without wasting room on a slide. Don is right. Forget the details. Cover the capabilities, not the mechanics. -- Adam

adam.turoff:
On Mon, May 18, 2009 at 2:06 PM, Don Stewart
wrote: Exactly: focus on what the user wants to do (e.g. write multicore code, write safe code, write code quickly), not how that is achieved: "bounded parametric polymorphism" or "monads"
Parametric polymorphism is a big win, and highlights something a user wants to do. A *shallow* overview (one bullet, one function) might fit. Off the top of my head:
incr :: (Num a) => a -> a incr = (+ 1)
Writing that operation in other languages is either (a) repeated for every numeric type or (b) not typesafe. Haskell is one of the few that delivers both, and that is worth underscoring. And it gives you an opportunity to wave your hands and talk about type inferencing without wasting room on a slide.
Right, so talk about "Reuse!" (polymorphism) , "Productivity" (type inference) "Performance" (static typing + optimizer) -- Don

The main bullet point is missing: Correctness. How could we have forgotten quickcheck?
quickCheck (\xs -> sort (sort xs) == sort xs) OK, 100 tests passed.
2009/5/18 Don Stewart
adam.turoff:
On Mon, May 18, 2009 at 2:06 PM, Don Stewart
wrote: Exactly: focus on what the user wants to do (e.g. write multicore code, write safe code, write code quickly), not how that is achieved: "bounded parametric polymorphism" or "monads"
Parametric polymorphism is a big win, and highlights something a user wants to do. A *shallow* overview (one bullet, one function) might fit. Off the top of my head:
incr :: (Num a) => a -> a incr = (+ 1)
Writing that operation in other languages is either (a) repeated for every numeric type or (b) not typesafe. Haskell is one of the few that delivers both, and that is worth underscoring. And it gives you an opportunity to wave your hands and talk about type inferencing without wasting room on a slide.
Right, so talk about "Reuse!" (polymorphism) , "Productivity" (type inference) "Performance" (static typing + optimizer)
-- Don _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Eugene Kirpichov Web IR developer, market.yandex.ru

On Mon, May 18, 2009 at 11:33 AM, Eugene Kirpichov
The main bullet point is missing: Correctness.
How could we have forgotten quickcheck?
quickCheck (\xs -> sort (sort xs) == sort xs) OK, 100 tests passed.
I like this, but given that you have a whole slide, I might write this: isSorted :: Ord a => [a] -> Bool isSorted [] = True isSorted [x] = True isSorted (x:y:rest) = x <= y && isSorted (y:rest)
quickCheck (\xs -> isSorted (sort xs)) OK, 100 tests passed.
Or, if you want to lead into a talk about fusion and/or higher order functions: isSorted [] = True isSorted (x:xs) = snd $ foldl' check (head x, True) xs where check (prevElem, restSorted) thisElem = (thisElem, prevElem <= thisElem && restSorted) -- ryan

On 18 May 2009, at 20:29, Joe Fredette wrote:
While an incredibly small font is a clever option, a more serious suggestion may be as follows.
3-4 slides imply 3-4 topics, so the question is what are the 3-4 biggest topics in haskell? I would think they would be:
* Purity/Referential Transparency * Lazy Evaluation * Strong Typing + Type Classes * Monads
I'd say monads are not of that importance; parametric polymorphism may be a better choice.
Assuming you have, say, 10-15 minutes for the talk, and the people there are versed with imperative programming and maybe have some experience in functional programming, you can probably jump over each of those slides in about a minute, just enough to touch the subject.
I also assume that you don't need to fit the whole presentation in 3-4 slides, if you do, then .... yah.
/Joe
David Leimbach wrote:
Use an incredibly small font.
On Mon, May 18, 2009 at 8:16 AM, John Van Enk
wrote:
Hi all, I'm giving a presentation to an IEEE group on Embedded DSL's and Haskell at the end of June. I need a 3 to 4 slide introduction to Haskell. What suggestions does the community have? Is such a short intro possible? It just needs to introduce the basics so I can show some code without alienating the audience. I'm hoping some one else has attempted this before, but if not, some boiler plate slides could be useful for every one!
-- /jve
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org mailto:Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
------------------------------------------------------------------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

jfredett:
While an incredibly small font is a clever option, a more serious suggestion may be as follows.
3-4 slides imply 3-4 topics, so the question is what are the 3-4 biggest topics in haskell? I would think they would be:
* Purity/Referential Transparency * Lazy Evaluation * Strong Typing + Type Classes * Monads
Parallelism
participants (10)
-
Adam Turoff
-
Andrew Wagner
-
David Leimbach
-
Don Stewart
-
Donnie Jones
-
Eugene Kirpichov
-
Joe Fredette
-
John Van Enk
-
Miguel Mitrofanov
-
Ryan Ingram