9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
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 --]

  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).