From: James Chapman <james@cs.ioc.ee>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] nice quote
Date: Sun, 6 Sep 2009 21:34:26 +0300 [thread overview]
Message-ID: <A13C01A6-BDA9-4F21-974F-5CB5BA2724A1@cs.ioc.ee> (raw)
In-Reply-To: <3e1162e60909061105p2b911917h820aca0e08b10b30@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3897 bytes --]
On Sep 6, 2009, at 9:05 PM, David Leimbach wrote:
> On Sun, Sep 6, 2009 at 10:08 AM, Eris Discordia <eris.discordia@gmail.com
> > wrote:
> In this respect rating the "expressive power of C versus LISP" depends
> very much on the problem domain under discussion.
>
> Of course. I pointed out in my first post on the thread that "[...]
> for a person of my (low) caliber, LISP is neither suited to the
> family of problems I encounter nor suited to the machines I solve
> them on." I cannot exclude other machines and other problems but can
> talk from what little I have personally experienced.
>
> I would like to see Haskell fill C's niche [...]
>
> Is it as readily comprehensible to newcomers as C? Are there texts
> out there that can welcome a real beginner in programming and help
> him become productive, on a personal level at least, as rapidly as
> good C textbooks--you know the classic example--do? Is there a
> coherent mental model of small computers--not necessarily what you
> or I deem to be a small computer--that Haskell fits well and can be
> taught to learners? I imagine those will be indispensable for any
> language to replace existing languages, much more so in case of C.
>
> According to the designer of F# (another functional programming
> language that takes it's syntax from O'Caml as well as Haskell and
> even Python), one of the best experiences he'd had was working with
> a high school student who was able to modify a solar system
> simulation written in F# with no prior programming experience.
> (from http://www.computerworld.com.au/article/271034/)
>
> There's books on F# out there, and F# for Scientists.
>
> http://www.ffconsultancy.com/products/fsharp_for_scientists/index.html
>
> There's books on multimedia programming in Haskell out there that
> also attempt to show programming to newcomers, but I'm not sure any
> of them really assume no prior programming experience.
>
> I think people learning C get one view of the computer that folks
> learning assembly really learn to appreciate :-). Folks learning
> Haskell learn another mental model of programming as well.
>
> My personal belief is that learning new languages makes one think
> about the languages they are used to in a new light, and can make
> them better programmers overall.
>
As you mentioned beginners books for Haskell I couldn't resist
plugging Graham Huttons excellent beginners book "Programming in
Haskell":
http://www.cs.nott.ac.uk/~gmh/book.html
It is based on 10 years of teaching a first year undergraduate course
and is certainly accessible I believe. I've taught an undergraduate
course myself using it.
There is also the this book which complements Graham's quite well:
http://www.realworldhaskell.org/blog/
I agree with David in that it is asking the wrong question as to
whether there is a model of a computer that fits with Haskell. Haskell
is based on a different model of computation. Conceptually, Haskell
programs are executed by rewriting expressions not by manipulating
memory in a machine.
A trivial example:
Here's a function to append a list onto a list:
append :: [a] -> [a] -> [a]
append [] ys = ys
append (x:xs) ys = x:append xs ys
and here we run it (on paper, no machine required :) ) on a some lists
by applying the above rules where the match:
Note: [1,2] is syntactic sugar for (1:(2:[]))
append [1,2] [3,4]
= { apply first pattern match equation }
1 : append [2] [3,4]
= { apply first pattern match equation }
1 : 2 : append [] [3,4]
= { apply second pattern match equation }
1 : 2 : [3,4]
= { just syntactic sugar }
[1,2,3,4]
I wouldn't be as bold as to suggest that Haskell should replace C but
certainly it is a nice language to use in my opinion. Does it explain
how a computer works? No. Does it explain 'computation'? Yes.
[-- Attachment #2: Type: text/html, Size: 5658 bytes --]
next prev parent reply other threads:[~2009-09-06 18:34 UTC|newest]
Thread overview: 130+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-02 14:29 ron minnich
2009-09-02 14:51 ` Rodolfo (kix)
2009-09-03 9:52 ` Greg Comeau
2009-09-03 11:15 ` Skip Tavakkolian
2009-09-03 13:59 ` Greg Comeau
2009-09-03 15:01 ` David Leimbach
2009-09-02 15:19 ` Enrique Soriano
2009-09-02 16:38 ` erik quanstrom
2009-09-02 16:56 ` David Leimbach
2009-09-02 16:58 ` Robert Raschke
2009-09-02 17:03 ` David Leimbach
2009-09-02 17:36 ` erik quanstrom
2009-09-02 18:08 ` Richard Miller
2009-09-02 18:27 ` David Leimbach
2009-09-02 18:35 ` erik quanstrom
2009-09-02 18:46 ` David Leimbach
2009-09-03 15:02 ` Uriel
2009-09-03 15:02 ` David Leimbach
2009-09-02 19:10 ` Jonathan Cast
2009-09-02 20:02 ` David Leimbach
2009-09-02 20:23 ` Jonathan Cast
2009-09-02 20:45 ` David Leimbach
2009-09-02 17:31 ` Eric Van Hensbergen
2009-09-02 18:25 ` David Leimbach
2009-09-02 18:47 ` ron minnich
2009-09-02 19:11 ` Brian L. Stuart
2009-09-02 19:32 ` David Leimbach
2009-09-02 22:59 ` Roman V Shaposhnik
2009-09-03 9:53 ` Greg Comeau
2009-09-03 11:24 ` Skip Tavakkolian
2009-09-03 12:01 ` tlaronde
2009-09-03 12:06 ` Brantley Coile
2009-09-03 14:03 ` Greg Comeau
2009-09-03 15:13 ` Jason Catena
2009-09-04 9:04 ` Greg Comeau
2009-09-03 14:02 ` Greg Comeau
2009-09-03 14:57 ` Robert Raschke
2009-09-04 9:04 ` Greg Comeau
2009-09-03 17:40 ` Brian L. Stuart
2009-09-04 9:03 ` Greg Comeau
2009-09-04 17:47 ` Brian L. Stuart
2009-09-04 18:01 ` Jack Norton
2009-09-04 20:18 ` Eris Discordia
2009-09-04 21:36 ` Daniel Lyons
2009-09-04 22:50 ` andrey mirtchovski
2009-09-05 14:14 ` Eris Discordia
[not found] ` <7AAFE4127E1DB57785BB273A@192.168.1.2>
2009-09-05 14:36 ` Eris Discordia
2009-09-06 1:58 ` Jason Catena
2009-09-06 3:38 ` David Leimbach
2009-09-06 18:29 ` Tim Newsham
2009-09-06 18:44 ` David Leimbach
2009-09-06 17:08 ` Eris Discordia
[not found] ` <9C0E59DDCCDD197FBD4EC404@192.168.1.2>
2009-09-06 18:05 ` David Leimbach
2009-09-06 18:34 ` James Chapman [this message]
2009-09-06 18:26 ` Tim Newsham
2009-09-06 18:40 ` David Leimbach
2009-09-07 8:54 ` Paul Donnelly
2009-09-07 9:07 ` Greg Comeau
[not found] ` <BB8E3A2E5419E566D0361D29@192.168.1.2>
2009-09-04 21:52 ` Jason Catena
2009-09-05 11:02 ` Richard Miller
2009-09-05 11:22 ` Akshat Kumar
2009-09-05 12:11 ` tlaronde
2009-09-06 20:04 ` Rudolf Sykora
2009-09-06 20:45 ` erik quanstrom
2009-09-07 7:51 ` Vinu Rajashekhar
2009-09-05 13:38 ` Anthony Sorace
2009-09-07 9:07 ` Greg Comeau
2009-09-07 9:39 ` Akshat Kumar
2009-09-07 15:49 ` Greg Comeau
2009-09-07 15:58 ` erik quanstrom
2009-09-07 20:56 ` Lyndon Nerenberg - VE6BBM/VE7TFX
2009-09-07 21:21 ` Federico G. Benavento
2009-09-07 21:33 ` Lyndon Nerenberg - VE6BBM/VE7TFX
2009-09-09 8:30 ` Greg Comeau
2009-09-09 11:22 ` erik quanstrom
2009-09-09 15:48 ` Charles Forsyth
2009-09-09 16:00 ` Russ Cox
2009-09-09 16:37 ` Abhishek Kulkarni
2009-09-09 16:51 ` Jack Norton
2009-09-09 16:07 ` erik quanstrom
2009-09-09 16:07 ` Akshat Kumar
2009-09-09 16:08 ` Richard Miller
2009-09-09 16:13 ` Richard Miller
2009-09-10 21:45 ` erik quanstrom
2009-09-11 7:54 ` Richard Miller
2009-09-11 10:21 ` erik quanstrom
2009-09-09 16:11 ` David Leimbach
2009-09-09 16:29 ` Jason Catena
2009-09-09 17:17 ` Skip Tavakkolian
2009-09-09 18:36 ` Jason Catena
2009-09-09 17:29 ` Iruata Souza
2009-09-09 17:57 ` Tim Newsham
2009-09-10 11:59 ` Eris Discordia
[not found] ` <99A870099C1B1D6560F4CF1A@192.168.1.2>
2009-09-10 15:58 ` hiro
2009-09-10 21:24 ` Eris Discordia
2009-09-09 8:30 ` Greg Comeau
2009-09-09 8:29 ` Greg Comeau
2009-09-05 14:27 ` Eris Discordia
2009-09-05 14:33 ` Eris Discordia
[not found] ` <B6F7A6BD1919CC67B621FDE3@192.168.1.2>
2009-09-05 14:36 ` John Floren
2009-09-05 14:51 ` Eris Discordia
2009-09-05 19:30 ` Daniel Lyons
2009-09-05 23:48 ` Eris Discordia
2009-09-05 18:26 ` erik quanstrom
2009-09-06 0:05 ` Eris Discordia
2009-09-06 0:17 ` erik quanstrom
2009-09-06 0:37 ` Eris Discordia
2009-09-06 0:56 ` erik quanstrom
2009-09-06 16:51 ` Eris Discordia
2009-09-06 17:32 ` tlaronde
2009-09-06 4:23 ` J.R. Mauro
2009-09-06 17:24 ` Eris Discordia
[not found] ` <393394D0A7F3F4A227F94CDA@192.168.1.2>
2009-09-06 18:03 ` Rob Pike
2009-09-06 19:26 ` Eris Discordia
2009-09-07 15:47 ` J.R. Mauro
2009-09-07 8:54 ` Paul Donnelly
2009-09-07 9:04 ` Daniel Lyons
2009-09-07 9:05 ` Vinu Rajashekhar
2009-09-07 9:05 ` Greg Comeau
2009-09-07 9:49 ` Daniel Lyons
2009-09-07 11:34 ` erik quanstrom
2009-09-07 16:00 ` Greg Comeau
2009-09-07 19:23 ` Eris Discordia
2009-09-09 8:29 ` Greg Comeau
2009-09-09 8:35 ` Paul Donnelly
2009-09-03 19:38 ` tlaronde
2009-09-03 21:55 ` Daniel Lyons
2009-09-03 22:01 ` Tharaneedharan Vilwanathan
2009-09-07 8:54 ` Greg Comeau
2009-09-04 9:15 ` Greg Comeau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=A13C01A6-BDA9-4F21-974F-5CB5BA2724A1@cs.ioc.ee \
--to=james@cs.ioc.ee \
--cc=9fans@9fans.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).