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