[Haskell-cafe] monads and groups -- instead of loops

2007-08-01 Thread Greg Meredith
Haskellians,

Though the actual metaphor in the monads-via-loops doesn't seem to fly with
this audience, i like the spirit of the communication and the implicit
challenge: find a pithy slogan that -- for a particular audience, like
imperative programmers -- serves to uncover the essence of the notion. i
can't really address that audience as my first real exposure to programming
was scheme and i moved into concurrency and reflection after that and only
ever used imperative languages as means to an end. That said, i think i
found another metaphor that summarizes the notion for me. In the same way
that the group axioms organize notions of symmetry, including addition,
multiplication, reflections, translations, rotations, ... the monad(ic
axioms) organize(s) notions of snapshot (return) and update (bind),
including state, i/o, control,  In short

group : symmetry :: monad : update

Best wishes,

--greg

-- 
L.G. Meredith
Managing Partner
Biosimilarity LLC
505 N 72nd St
Seattle, WA 98103

+1 206.650.3740

http://biosimilarity.blogspot.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] monads and groups -- instead of loops

2007-08-01 Thread Andrew Wagner
That's great, unless the imperative programmer happens to be one of
the 90% of programmers that isn't particularly familiar with group
theory...

On 8/1/07, Greg Meredith [EMAIL PROTECTED] wrote:
 Haskellians,

 Though the actual metaphor in the monads-via-loops doesn't seem to fly with
 this audience, i like the spirit of the communication and the implicit
 challenge: find a pithy slogan that -- for a particular audience, like
 imperative programmers -- serves to uncover the essence of the notion. i
 can't really address that audience as my first real exposure to programming
 was scheme and i moved into concurrency and reflection after that and only
 ever used imperative languages as means to an end. That said, i think i
 found another metaphor that summarizes the notion for me. In the same way
 that the group axioms organize notions of symmetry, including addition,
 multiplication, reflections, translations, rotations, ... the monad(ic
 axioms) organize(s) notions of snapshot (return) and update (bind),
 including state, i/o, control,  In short

 group : symmetry :: monad : update

 Best wishes,

 --greg

 --
 L.G. Meredith
 Managing Partner
 Biosimilarity LLC
 505 N 72nd St
 Seattle, WA 98103

 +1 206.650.3740

 http://biosimilarity.blogspot.com
 ___
 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


Re: [Haskell-cafe] monads and groups -- instead of loops

2007-08-01 Thread Greg Meredith
Andrew,

;-) Agreed! As i said in my previous post, i can't address the imperative
programmer. i really don't think that way and have a hard time understanding
people who do! (-;

Best wishes,

--greg

On 8/1/07, Andrew Wagner [EMAIL PROTECTED] wrote:

 That's great, unless the imperative programmer happens to be one of
 the 90% of programmers that isn't particularly familiar with group
 theory...

 On 8/1/07, Greg Meredith [EMAIL PROTECTED] wrote:
  Haskellians,
 
  Though the actual metaphor in the monads-via-loops doesn't seem to fly
 with
  this audience, i like the spirit of the communication and the implicit
  challenge: find a pithy slogan that -- for a particular audience, like
  imperative programmers -- serves to uncover the essence of the notion. i
  can't really address that audience as my first real exposure to
 programming
  was scheme and i moved into concurrency and reflection after that and
 only
  ever used imperative languages as means to an end. That said, i think i
  found another metaphor that summarizes the notion for me. In the same
 way
  that the group axioms organize notions of symmetry, including addition,
  multiplication, reflections, translations, rotations, ... the monad(ic
  axioms) organize(s) notions of snapshot (return) and update (bind),
  including state, i/o, control,  In short
 
  group : symmetry :: monad : update
 
  Best wishes,
 
  --greg
 
  --
  L.G. Meredith
  Managing Partner
  Biosimilarity LLC
  505 N 72nd St
  Seattle, WA 98103
 
  +1 206.650.3740
 
  http://biosimilarity.blogspot.com
  ___
  Haskell-Cafe mailing list
  Haskell-Cafe@haskell.org
  http://www.haskell.org/mailman/listinfo/haskell-cafe
 
 




-- 
L.G. Meredith
Managing Partner
Biosimilarity LLC
505 N 72nd St
Seattle, WA 98103

+1 206.650.3740

http://biosimilarity.blogspot.com
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] monads and groups -- instead of loops

2007-08-01 Thread Cale Gibbard
On 01/08/07, Greg Meredith [EMAIL PROTECTED] wrote:
 Haskellians,

 Though the actual metaphor in the monads-via-loops doesn't seem to fly with
 this audience, i like the spirit of the communication and the implicit
 challenge: find a pithy slogan that -- for a particular audience, like
 imperative programmers -- serves to uncover the essence of the notion. i
 can't really address that audience as my first real exposure to programming
 was scheme and i moved into concurrency and reflection after that and only
 ever used imperative languages as means to an end. That said, i think i
 found another metaphor that summarizes the notion for me. In the same way
 that the group axioms organize notions of symmetry, including addition,
 multiplication, reflections, translations, rotations, ... the monad(ic
 axioms) organize(s) notions of snapshot (return) and update (bind),
 including state, i/o, control,  In short

 group : symmetry :: monad : update

 Best wishes,

 --greg

Hello,

I just wrote
http://www.haskell.org/haskellwiki/Monads_as_computation
after starting to reply to this thread and then getting sidetracked
into writing a monad tutorial based on the approach I've been taking
in the ad-hoc tutorials I've been giving on #haskell lately. :)

It might be worth sifting through in order to determine an anthem for monads.

Something along the lines of:
monads are just a specific kind of {embedded domain specific
language, combinator library}
would work, provided that the person you're talking to knows what one
of those is. :) I've found it very effective to explain those in
general and then explain what a monad is in terms of them.

I'm not certain that the article is completely finished. I'm a bit
tired at the moment, and will probably return to polish the treatment
some more when I'm more awake, but I think it's finished enough to
usefully get the main ideas across.

 - Cale
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe