
I think using laziness for dynamic programming is a pretty amazing thing:
http://jelv.is/blog/Lazy-Dynamic-Programming/
On Wed, Jul 11, 2018 at 10:37 AM erik
For me there were two important "aha" moments. Right at the beginning I was drawn in by using ADTs and pattern-matching on them. It's so simple and plain and now it's the first thing I miss in any other language I have to work with. I feel like this would make a short, compelling example for programmers coming from any other background.
The second was reading Wadler's "Monads for Functional Progamming" (and reading it a second and third time, if we're being honest). The ways in which he takes three seemingly disconnected examples and reduces them to this broader mathematical abstraction: I found it quite beautiful and surprising once I fully appreciated it.
On Wed, Jul 11, 2018 at 7:29 AM Ionuț G. Stan
wrote: This is not necessarily related to Haskell, as I've had this A-HA moment while watching the 1984 SIPC lectures from MIT.
Anyway, at some point, Mr Sussman (or was it Mr Abelson?) used `+` as an argument to another function. I was bedazzled!
First of all, it was the syntactic novelty — `+` was not some rigid part of the syntax, it was just a name — secondly, it was not any name, it was the name of a *function* that was sent to another function. It was probably my first encounter with higher-order functions.
If I remember correctly, the code was along the lines of:
foldl (+) 0 [1,2,3]
Friends
In a few weeks I’m giving a talk to a bunch of genomics folk at the Sanger Institute https://www.sanger.ac.uk/ about Haskell. They do lots of programming, but they aren’t computer scientists.
I can tell them plenty about Haskell, but I’m ill-equipped to answer
On 11/07/2018 15:10, Simon Peyton Jones via Haskell-Cafe wrote: the
main question in their minds: /why should I even care about Haskell/? I’m too much of a biased witness.
So I thought I’d ask you for help. War stories perhaps – how using Haskell worked (or didn’t) for you. But rather than talk generalities, I’d love to illustrate with copious examples of beautiful code.
* Can you identify a few lines of Haskell that best characterise what you think makes Haskell distinctively worth caring about? Something that gave you an “aha” moment, or that feeling of joy when you truly make sense of something for the first time.
The challenge is, of course, that this audience will know no Haskell, so muttering about Cartesian Closed Categories isn’t going to do it for them. I need examples that I can present in 5 minutes, without needing a long setup.
To take a very basic example, consider Quicksort using list comprehensions, compared with its equivalent in C. It’s so short, so obviously right, whereas doing the right thing with in-place update in C notoriously prone to fencepost errors etc. But it also makes much less good use of memory, and is likely to run slower. I think I can do that in 5 minutes.
Another thing that I think comes over easily is the ability to abstract: generalising sum and product to fold by abstracting out a functional argument; generalising at the type level by polymorphism, including polymorphism over higher-kinded type constructors. Maybe 8 minutes.
But you will have more and better ideas, and (crucially) ideas that are more credibly grounded in the day to day reality of writing programs that get work done.
Pointers to your favourite blog posts would be another avenue. (I love the Haskell Weekly News.)
Finally, I know that some of you use Haskell specifically for genomics work, and maybe some of your insights would be particularly relevant for the Sanger audience.
Thank you! Perhaps your responses on this thread (if any) may be helpful to more than just me.
Simon
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- Ionuț G. Stan | http://igstan.ro | http://bucharestfp.ro _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- Erik Aker _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.