Article View: pl.comp.lang.funkcyjne
Article #993Re: SICP Distilled w wersji dla Clojure :)
From: godek.maciek
Date: Sun, 22 Jan 2017 20:21
Date: Sun, 22 Jan 2017 20:21
33 lines
3374 bytes
3374 bytes
W dniu niedziela, 22 stycznia 2017 19:58:17 UTC+1 użytkownik pawel...@gmail.com napisał: > Odświeżony, "przedestylowany" SICP, w wersji dla języka Clojure: > > http://www.sicpdistilled.com > > :) Entuzjaści języka LFE (Lisp-flavoured Erlang) również opracowują podobny projekt: https://lfe.gitbooks.io/sicp/content/ Byłbym jednak ostrożny, jeżeli idzie o tego rodzaju wynalazki. Rzecz bowiem w tym, że Scheme jest dużo prostszym i dużo bardziej minimalistycznym językiem, niż Clojure czy LFE, co ma szczególne znaczenie w kontekście 4-tego rodzaju SICP, w którym zostaje zaprezentowany kompletny ewaluator języka Scheme (oraz rozdziału 5-tego, zajmującego się kompilacją). Szczerze powiedziawszy, nie nazywałbym zresztą Clojure ani LFE językami programowania, tylko raczej systemami programistycznymi. Różnica jest taka, że język ma swoją specyfikację, która służy do komunikacji pomiędzy różnymi implementatorami. W przypadku Clojure i LFE (a także takich cudów, jak PHP) specyfikacją jest jedyna/główna implementacja. Warto mieć świadomość tego ograniczenia, ponieważ programy w Schemie można uruchamiać w wielu różnych środowiskach. Nie chcę oczywiście powiedzieć przez to, że Scheme jest "lepszy" od Clojure, bo to oczywiście zależy od poszczególnych zastosowań -- w wielu praktycznych zastosowaniach Clojure będzie pewnie wygodniejszy/praktyczniejszy. Jeżeli jednak idzie o naukę koncepcji programistycznych, stopień skomplikowania Clojure może niekiedy przesłaniać istotę rzeczy i stanowić utrudnienie, toteż podejrzewam, że na wynalazkach w rodzaju "SICP Distilled" czy "SICP LFE Edition" korzystają głównie ich autorzy. Myślę, że ciekawszym eksperymentem mogłoby być dla Ciebie opracowanie "SICP F# Edition", niż faktyczne korzystanie z którejś z tych pozycji.
Technical Details
Message-ID:
<774164fd-6aea-43b9-be21-78c7806dcb67@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!216.166.98.84.MISMATCH!border1.nntp.dca1.giganews.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!i7no536737qta.1!news-out.google.com!h135ni8082ith.0!nntp.google.com!r185no1495967ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<f82bf07a-4699-4ca5-949f-cef9e0a0780f@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.237.59.162 with SMTP id r31mr6885492qte.60.1485116467746; Sun, 22 Jan 2017 12:21:07 -0800 (PST) X-Received: by 10.157.14.183 with SMTP id 52mr2171457otj.20.1485116467702; Sun, 22 Jan 2017 12:21:07 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!216.166.98.84.MISMATCH!border1.nntp.dca1.giganews.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!i7no536737qta.1!news-out.google.com!h135ni8082ith.0!nntp.google.com!r185no1495967ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.funkcyjne Date: Sun, 22 Jan 2017 12:21:07 -0800 (PST) In-Reply-To: <f82bf07a-4699-4ca5-949f-cef9e0a0780f@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=176.221.123.40; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 176.221.123.40 References: <f82bf07a-4699-4ca5-949f-cef9e0a0780f@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <774164fd-6aea-43b9-be21-78c7806dcb67@googlegroups.com> Subject: Re: SICP Distilled w wersji dla Clojure :) From: godek.maciek@gmail.com Injection-Date: Sun, 22 Jan 2017 20:21:07 +0000 Lines: 54 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit