Deutsch   English   Français   Italiano  
<20240831200512.688@kylheku.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Kaz Kylheku <643-408-1753@kylheku.com>
Newsgroups: comp.lang.lisp,comp.lang.scheme
Subject: Re: Haskell
Date: Sun, 1 Sep 2024 03:07:57 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 54
Message-ID: <20240831200512.688@kylheku.com>
References: <vaufic$u2ps$1@dont-email.me>
Injection-Date: Sun, 01 Sep 2024 05:07:57 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="0e034b13bfff277bc16b176d591cb6d2";
	logging-data="1441391"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+p1Hm4orfS5TtbBIh7zJekhVQzhzG4WgI="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:KQM2oJjtkbFL7iUyr/EpoLNI7is=
Bytes: 2619

On 2024-08-31, B. Pym <Nobody447095@here-nor-there.org> wrote:
> Frank Buss wrote:
>
>> Barry Margolin wrote: 
>> > Which reminds me, where's the obligatory Haskell response? 
>> 
>> No problem :-) 
>> 
>> Assuming this is what was intended by the OP: 
>> 
>> (let (res) 
>>   (dotimes (i 11 (nreverse res)) 
>>    (dotimes (j 11) 
>>     (push (+ i j) res)))) 
>> 
>> This is a solution in Haskell: 
>> 
>> [x + y | x <- [0..10], y <- [0..10]] 
>> 
>
> It's shorter in Gauche Scheme than in Haskell.
>
> (use srfi-42) ; list-ec
>
> (list-ec (: x 11) (: y 11) (+ x y))
>
> Can it be done with a single "do*"?
>
> (do* ((r '())
>       (j 0 (mod (+ j 1) 11))
>       (i 0 (if (zero? j) (+ 1 i) i)))
>   ((= 11 i)  (reverse r))
>   (push! r (+ i j)))
>
> (0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9
>  10 11 12 3 4 5 6 7 8 9 10 11 12 13 4 5 6 7 8 9 10 11 12 13 14
>  5 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 16 7 8 9
>  10 11 12 13 14 15 16 17 8 9 10 11 12 13 14 15 16 17 18 9 10 11
>  12 13 14 15 16 17 18 19 10 11 12 13 14 15 16 17 18 19 20)

This is the TXR Lisp interactive listener of TXR 296.
Quit with :quit or Ctrl-D on an empty line. Ctrl-X ? for cheatsheet.
This could be the year of the TXR desktop; I can feel it!
1> [maprod + 0..11 0..11]
(0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8
 9 10 11 12 3 4 5 6 7 8 9 10 11 12 13 4 5 6 7 8 9 10 11 12 13
 14 5 6 7 8 9 10 11 12 13 14 15 6 7 8 9 10 11 12 13 14 15 16 7
 8 9 10 11 12 13 14 15 16 17 8 9 10 11 12 13 14 15 16 17 18 9
 10 11 12 13 14 15 16 17 18 19 10 11 12 13 14 15 16 17 18 19 20)

-- 
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca