unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Paul Rubin <no.email@nospam.invalid>
To: help-gnu-emacs@gnu.org
Subject: Re: How to improve the readability of (any) LISP or any highlevel functional language to the level of FORTH ?
Date: Sun, 02 Jan 2011 13:21:54 -0800	[thread overview]
Message-ID: <7xsjxbm26l.fsf@ruckus.brouhaha.com> (raw)
In-Reply-To: ce0f5c3b-bc71-4868-8d2b-5495583ccfa8@w18g2000vbe.googlegroups.com

LanX <lanx.perl@googlemail.com> writes:
>>    main = print [head xs | xs <- group my_list]
>
> does this really produce the desired output?
> Will the second 1 really be printed?

Yes.  "group" is a very useful function, that transforms a list into a
list-of-lists which collapses identical elements:

    group [1, 1, 1, 1, 2, 3, 3, 1, 1, 4, 5, 5, 5, 5]

is

    [[1,1,1,1], [2], [3,3], [1,1], [4], [5,5,5,5]]

The list comprehension 

     [head xs | xs <- group my_list]

simply collects the first element of each of those sub-lists.

There is also groupBy, which lets you supply your own equality
predicate.  If there's not already a Lisp library similar to Python's
itertools module and Haskell's List module, it's probably worth writing
one.


  parent reply	other threads:[~2011-01-02 21:21 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-01  7:04 How to improve the readability of (any) LISP or any highlevel functional language to the level of FORTH ? girosenth
2011-01-01 11:39 ` Elena
2011-01-01 14:15 ` Pascal J. Bourguignon
2011-01-01 16:08   ` Nathan
2011-01-01 18:05     ` Jan Burse
2011-01-01 23:56     ` The Quiet Center
2011-01-02  1:10       ` Jan Burse
2011-01-02  3:45       ` LanX
2011-01-02  4:04         ` LanX
2011-01-02  5:36           ` Nathan
2011-01-02  6:46             ` Paul Rubin
2011-01-02 15:01               ` LanX
2011-01-02 15:14                 ` Jerome Baum
2011-01-02 21:21                 ` Paul Rubin [this message]
2011-01-02  7:14             ` w_a_x_man
2011-01-02  6:59       ` w_a_x_man
2011-01-03 15:22         ` LanX
2011-01-02 14:07       ` Frank GOENNINGER
2011-01-07  9:41       ` w_a_x_man
2011-01-09 10:41         ` How to improve the readability of (any) LISP or any highlevelfunctional " WJ
2011-01-03 10:29     ` How to improve the readability of (any) LISP or any highlevel functional " Didier Verna
2011-01-03 13:05       ` Tim Harig
2011-01-04  4:49         ` rusi
2011-01-04  5:39           ` D Herring
2011-01-04  8:02             ` Tim Harig
2011-01-04  9:09               ` Nicolas Neuss
2011-01-04 10:00               ` Tim Bradshaw
2011-01-04 12:21                 ` Tim Harig
2011-01-04 12:23                   ` Tim Bradshaw
2011-01-04 13:33                     ` Tim Harig
2011-01-04 12:41                   ` Tamas K Papp
2011-01-04 23:32                 ` Tim X
2011-01-05  1:35                   ` [OT] LISP community advocacy [was Re: How to improve the readability of (any) LISP or any highlevel functional language to the level of FORTH ?] Tim Harig
2011-01-05  9:52                   ` How to improve the readability of (any) LISP or any highlevel functional language to the level of FORTH ? Tim Bradshaw
2011-01-04  6:24           ` Pascal J. Bourguignon
2011-01-04 15:43             ` Raffael Cavallaro
2011-01-04 10:18         ` Didier Verna
2011-01-01 22:50   ` girosenth
2011-01-02 21:11     ` Thien-Thi Nguyen
2011-01-03 16:21     ` José A. Romero L.
2011-01-03 18:03     ` jacko
2011-01-02 23:45   ` Chip Eastham
2011-01-01 18:27 ` How to improve the readability of Steve Revilak
2011-01-01 19:22 ` How to improve the readability of (any) LISP or any highlevel functional language to the level of FORTH ? prad
2011-01-01 23:56 ` Pascal Costanza
2011-01-02  5:39   ` D Herring
2011-01-02 14:17     ` Frank GOENNINGER
2011-01-02 14:53       ` Jerome Baum
2011-01-02 14:58         ` LanX
2011-01-02 17:55     ` Bernd Paysan
2011-01-03 18:07   ` jacko
2011-01-02 12:59 ` Doug Hoffman
2011-01-02 19:14   ` w_a_x_man
2011-01-03  5:20     ` Elizabeth D Rather
2011-01-03 10:48     ` MarkWills
2011-01-03 15:13       ` LanX
2011-01-03 18:20     ` jacko
2011-01-03 18:22     ` jacko
2011-01-03 10:18 ` Didier Verna
2011-01-04  6:47 ` pineapple
2011-01-04 14:14   ` P.M.Lawrence
2011-01-05 14:58 ` Xah Lee
2011-01-05 16:21   ` Andrew Haley
2011-01-05 21:29     ` Pascal J. Bourguignon
2011-01-06  8:57       ` Jonathan Groll
2011-01-07  5:36     ` Xah Lee
2011-01-07 13:28       ` Andrew Haley
2011-01-07 16:19         ` Xah Lee
2011-01-05 17:59   ` Elena
2011-01-05 20:13     ` Xah Lee
2011-01-05 21:42     ` Pascal J. Bourguignon
2011-01-06 13:38       ` Doug Hoffman
2011-01-06 19:20         ` Pascal J. Bourguignon
2011-01-07  0:09           ` w_a_x_man
2011-01-07 12:04           ` Doug Hoffman
2011-01-06 22:59   ` Xah Lee
2011-01-07 11:47     ` Jan Burse
2011-01-21 10:03       ` rupertlssmith
2011-01-21 16:08         ` Jan Burse
2011-01-21 21:43           ` D. J. Penton
2011-01-18 22:55 ` m_l_g3
2011-01-19 13:45   ` Doug Hoffman
2011-01-21 16:15   ` Jan Burse
  -- strict thread matches above, loose matches on Subject: below --
2011-01-02 16:50 Drew Adams

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7xsjxbm26l.fsf@ruckus.brouhaha.com \
    --to=no.email@nospam.invalid \
    --cc=help-gnu-emacs@gnu.org \
    /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 read-only IMAP folder(s) and NNTP newsgroup(s).