Article View: pl.comp.lang.funkcyjne
Article #975Re: Języki funkcyjne (F#, Clojure, OCaml) a kwestia "wyższej" matematyki, rachunku lambda itd
From: godek.maciek
Date: Thu, 19 Jan 2017 13:17
Date: Thu, 19 Jan 2017 13:17
60 lines
5098 bytes
5098 bytes
W dniu czwartek, 19 stycznia 2017 09:53:14 UTC+1 użytkownik pawel...@gmail.com napisał:
> W dniu środa, 18 stycznia 2017 13:37:16 UTC+1 użytkownik godek....@gmail.com
> > W każdym razie Scheme to bardzo prosty język, i jest w SICP
> > wytłumaczony bardzo dobrze (choć książka jest raczej wymagająca).
> > Oczywiście nic nie stoi na przeszkodzie, żeby zadania rozwiązywać
> > w Swoim Ulubionym Języku (przynajmniej dopóki system typów
> > nie wchodzi w paradę)
>
> A tak z ciekawości, Ty używasz Racket Scheme właśnie?
Ja głównie używam Guile Scheme z poziomu Emacsa.
Jeśli jesteś ciekaw, możesz zerknąć na mój ("Panicz Godek") wpis
w serwisie Quora:
https://www.quora.com/Which-LISP-implementation-will-be-useful-for-run-of-the-mill-problems
> Z tego co widziałem, to środowisko jest bardzo miłe,
> wychodzą nowe wersje (racket-lang.org), tyle że sami twórcy
> przyznają, że środowisko jest stworzone z myślą o "początkujących
> studentach".
Jak czasem zdarza mi się uczyć różne osoby Scheme'u, to rzeczywiście
używam dra Racketa, bo Emacs sam w sobie nie jest zbyt przyjazny dla
początkujących. Ale osobiście raczej bym nie zdzierżył używania tego
środowiska do celów produkcyjnych (co innego sam język/implementacja
-- tutaj raczej nie mam zastrzeżeń). Kiedyś korzystałem z Racketowego
steppera makr, żeby lepiej ogarnąć, jak działa system makr syntax-case.
> Czy do bardziej poważnych, produkcyjnych rzeczy
> "schemowcy" używają raczej Lispa, czy również jakiegoś środowiska
> Scheme?
Ostatnio doszło do pewnego przełomu, bo Kent Dybvig upublicznił źródła
swojego kompilatora Chez, którego wydajność jest chyba na poziomie
najlepszych Common Lispów (i w niektórych benczmarakach rzeczywiście
uzyskiwałem przyspieszenie rzędu 10x w porównaniu do Guile 2.0, którego
jednak główną zaletą nie jest wydajność, ale wygoda użycia i dokumentacja)
> Wiesz.. pytam pod kątem tego, że gdybym potrzebował np.
> za jakiś czas zrobić klienta, który pobierze mi dane z usługi REST,
> w wygodny sposób przetworzy jsona itp, to żeby nie trafić na ścianę
> pt "kompletny brak bibliotek".
Jakiś rozwiązania na pewno znajdziesz. Z takich praktycznych, to Racket
może rzeczywiście być dobrą opcją, bo tam nawet na stronie kiedyś mieli
jakieś jednolinijkowe serwery. Zresztą jeżeli idzie o samą naukę, to sądzę,
że pod względem jakości materiałów edukacyjnych Racket nie ma sobie
równych (jak choćby książka http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html albo kurs "Introduction to Systematic Program Design", kiedyś
na Courserze, a teraz zdaje się w edX), ale co do praktycznej interakcji
ze Schemem, to raczej polecam Emacsa, bo to jest zupełnie inna jakość
programowania (Clojure miał kiedyś edytor LightTable podobny w duchu,
ale chyba już nierozwijany)
Tak czy siak, nauka podstaw Scheme'u to najwyżej kilka godzin (Abelson
i Sussman porównują to do nauki ruchów szachowych, ale tak naprawdę ruchy
w szachach są dużo bardziej skomplikowane)
Gdybyś chciał sobie zerknąć, to napisałem na zaliczenie projektu na studiach
książeczkę o tzw. "inteligencji obliczeniowej" w języku Scheme:
http://panicz.github.io/pamphlet/
Technical Details
Message-ID:
<d8924739-c7b7-4511-809a-29cc1a53f5e9@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!nntp.giganews.com!r185no435511ita.0!news-out.google.com!h135ni8604ith.0!nntp.google.com!r185no435503ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<aebb68c4-f04b-4566-8d4a-1afb7e4173a7@googlegroups.com> <49078b6d-512c-4f39-a6c1-3e6f266c5061@googlegroups.com> <dc1fa4d0-6ea8-4fcf-a794-cbb6ecfac0ea@googlegroups.com> <6b0eaacc-8422-4bc9-be80-e3a652d6c417@googlegroups.com> <bd9a4de5-a6c2-449a-9bba-ca3a89d7c5ce@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.99.158.9 with SMTP id s9mr2568361pgd.148.1484831836433; Thu, 19 Jan 2017 05:17:16 -0800 (PST) X-Received: by 10.157.45.102 with SMTP id v93mr898693ota.3.1484831836387; Thu, 19 Jan 2017 05:17:16 -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!nntp.giganews.com!r185no435511ita.0!news-out.google.com!h135ni8604ith.0!nntp.google.com!r185no435503ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.funkcyjne Date: Thu, 19 Jan 2017 05:17:16 -0800 (PST) In-Reply-To: <bd9a4de5-a6c2-449a-9bba-ca3a89d7c5ce@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.192.95.134; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 213.192.95.134 References: <aebb68c4-f04b-4566-8d4a-1afb7e4173a7@googlegroups.com> <49078b6d-512c-4f39-a6c1-3e6f266c5061@googlegroups.com> <dc1fa4d0-6ea8-4fcf-a794-cbb6ecfac0ea@googlegroups.com> <6b0eaacc-8422-4bc9-be80-e3a652d6c417@googlegroups.com> <bd9a4de5-a6c2-449a-9bba-ca3a89d7c5ce@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <d8924739-c7b7-4511-809a-29cc1a53f5e9@googlegroups.com> Subject: Re: Języki funkcyjne (F#, Clojure, OCaml) a kwestia "wyższej" matematyki, rachunku lambda itd From: godek.maciek@gmail.com Injection-Date: Thu, 19 Jan 2017 13:17:16 +0000 Lines: 93 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit