Send Beginners mailing list submissions to
        beginners@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        beginners-requ...@haskell.org

You can reach the person managing the list at
        beginners-ow...@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1.  Need some understanding on this behavior. (Alexander Chen)
   2. Re:  Need some understanding on this behavior. (Alexander Klink)


----------------------------------------------------------------------

Message: 1
Date: Mon, 3 Feb 2020 09:14:24 +0100 (CET)
From: Alexander Chen <alexan...@chenjia.nl>
To: beginners@haskell.org
Subject: [Haskell-beginners] Need some understanding on this behavior.
Message-ID: <1418257784.758267.1580717664...@ichabod.co-bxl>
Content-Type: text/plain; charset="utf-8"


hi,

I need some understanding on the following behavior:

a = [1..]
[x | x <-a, x <= 100]
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100

(note the missing ']' which results in the command not finishing)

b = take 1000 a
[x | x <-b, x <= 100]
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]

Note, I took more for b  just for ease sake. But now the command finishes 
correctly.

Question:
why can i not use a lazy list directly in a list comprehension?

best,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20200203/44a29b59/attachment-0001.html>

------------------------------

Message: 2
Date: Mon, 3 Feb 2020 09:59:47 +0100
From: Alexander Klink <alexan...@klink.name>
To: Alexander Chen <alexan...@chenjia.nl>, The Haskell-Beginners
        Mailing List - Discussion of primarily beginner-level topics related
        to Haskell <beginners@haskell.org>
Subject: Re: [Haskell-beginners] Need some understanding on this
        behavior.
Message-ID: <20200203085947.gb11...@putna.0x90.eu>
Content-Type: text/plain; charset=us-ascii

Hi Alexander,

On Mon, Feb 03, 2020 at 09:14:24AM +0100, Alexander Chen wrote:
> I need some understanding on the following behavior:
> 
> a = [1..]
> [x | x <-a, x <= 100]
> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100
> 
> (note the missing ']' which results in the command not finishing)

It does not finish because the list comprehension does not know that a
is ordered, so it has to go through *every* element and take those that
are less than or equal to 100.

HTH,
Alex


------------------------------

Subject: Digest Footer

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


------------------------------

End of Beginners Digest, Vol 140, Issue 1
*****************************************

Reply via email to