From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Georg Bauhaus Newsgroups: comp.lang.ada Subject: Re: If not Ada, what else... Date: Wed, 29 Jul 2015 21:32:35 +0200 Organization: A noiseless patient Spider Message-ID: References: <06f8a6f9-d219-4d40-b9ac-8518e93839bd@googlegroups.com> <87y4io63jy.fsf@jester.gateway.sonic.net> <7a29d3e9-d1bd-4f4a-b1a6-14d3e1a83a4d@googlegroups.com> <87mvz36fen.fsf@jester.gateway.sonic.net> <2215b44f-8a89-47c6-a4c4-52b74d2dac45@googlegroups.com> <9e492c82-868d-43d3-a18a-38274400e337@googlegroups.com> <40184feb-4053-4ac3-8eaa-c3bd9cd8a77c@googlegroups.com> <10272577-945f-4682-85bc-8ad47f3653ae@googlegroups.com> <87si8i81k2.fsf@atmarama.net> <8076cbd0-2655-4c98-b70e-cb5f0c32e4ba@googlegroups.com> <5e6cb30b-5f8c-4fed-969e-3941315ecba0@googlegroups.com> <87si87nf8k.fsf@jester.gateway.sonic.net> Reply-To: nonlegitur@futureapps.de Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Wed, 29 Jul 2015 19:31:01 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="56de631a3d8648337a6b4928346548b8"; logging-data="15051"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19WRvpENQLgEDDaBc9IXRNGywhCpQj5rxY=" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 In-Reply-To: <87si87nf8k.fsf@jester.gateway.sonic.net> Cancel-Lock: sha1:6QQ9kRQXNrQKer88a7T0o8BZsC8= Xref: news.eternal-september.org comp.lang.ada:27144 Date: 2015-07-29T21:32:35+02:00 List-Id: On 29.07.15 17:41, Paul Rubin wrote: > Here is an exercise that is easy in Haskell but surprisingly tedious in > languages like Ada OTOH, it keeps being surprisingly tedious to turn clear and simple Haskell algorithms into something that respects time and storage. GHC seems to have become just a little better over the years. Naively computing a sum picking by picking every mth element from a list, picksum :: [Int] -> Int -> Int picksum [] m = 0 picksum xs m | m <= 0 = 0 | m > 0 = mth xs where mth l@(y:ys) = y + mth (drop m l) mth [] = 0 Then, try this with the justly famed easy list notation, passing [1 .. 12345678], or larger. (I have GHC 7.8.3, maybe that's too old?) Of course, the language war soldier of Haskell will argue that the enemy writer of the above algorithm was stupid, and that the same thing happens if you do use lists in Ada, from Ada.Containers, instead of what any competent programmer would be writing in either language. Whatever that might be. But it's definitely good for prototyping, that much seems obvious, I think.