2009-09-11 2 views

Odpowiedz

41

Byłoby dla ciebie, aby nauczyć się wszystkich trzech, jeśli tylko możesz wybrać, który jest najlepszy dla twoich potrzeb. Wszystkie trzy mają swoje mocne i słabe strony.

Clojure jest niejasno podobny do Schematu, ponieważ jest językiem głównie funkcjonalnym i jest Lisp1. Clojure pożycza także rzeczy od Common Lisp, jak multimetody i makra, a ludzie zawsze przenoszą fajne rzeczy z Common Lisp do Clojure jako biblioteki. Twórca Clojure sam był hackerem Common Lisp przed napisaniem Clojure. Clojure zapożyczył wiele terminologii i konwencji od Scheme i CL zarówno (ale także ma swoje smaki na wielu obszarach).

W tej chwili nie ma zbyt wiele literatury dla Clojure, ponieważ jest to nowy język (istnieje tylko one Clojure book so far). Ale jest mnóstwo dobrych książek zorientowanych na Scheme, takich jak SICP i The Little Schemer/The Seasoned Schemer. Istnieją również dobre książki CL, takie jak PCL i wiele innych.

Lisps ma również wiele historii i dla twojej historii jest zrozumienie, gdzie i dlaczego Clojure odstaje od tego, jeśli nic innego.

Polecam zacząć od schematu, ponieważ jest to najprostszy język z trzech i dlatego najłatwiejszy do nauczenia. Następnie mieszaj się w CL i Clojure, dopóki nie będziesz mieć do czynienia z rzeczami, a potem idź pełną parą w cokolwiek z tych dwóch, do których skierujesz.

+2

Wspaniała odpowiedź. Dzięki wielkie. – uzo

+0

przeczytać "mały lisper", a następnie "SICP", aby nauczyć się schematu lub seplenienia –

16

Dla twoich celów, myślę, że możesz bezpiecznie zacząć uczyć się Clojure. Różnice między Lisp i Scheme (a także Clojure) nie powinny stanowić problemu, zwłaszcza jeśli dopiero zaczynasz się uczyć.

3

To zależy od tego, czy chcesz się skupić na nauce, czy grze. Jeśli naprawdę chcesz się uczyć w Lisp, Scheme to dobre miejsce na rozpoczęcie. Jeśli wolisz grać, ponieważ uczysz się, Clojure jest lepszym rozwiązaniem.

Ostatecznie myślę, że Clojure może być lepszym językiem do nauki. To wsparcie dla współbieżności jest naprawdę otwierające oczy. Niewiele języków sprawia, że ​​początkujący może napisać programy współbieżne.

6

Moje pierwsze doświadczenie w nauczaniu Lispa dotyczyło Schematu, nigdy nie dotknąłem Common Lisp (czułem, że to zbyt skomplikowane), a teraz zaczynam od Clojure.

Użyłem Dorai Sitaram w programie "Naucz się sam w dniach Fixnum", aby nauczyć się Schematu i dość daleko, chociaż nigdy tak naprawdę nie chciałem używać Schematu w prawdziwych projektach.

Clojure, ponieważ rzekomo daje ładny, czysty dostęp do ogromnego świata bibliotek J2SE/J2EE, z drugiej strony, zachęca mnie do ponownego uczenia się tego dialektu Lisp, ponieważ może on w końcu być praktycznym zastosowaniem.

Jeśli chodzi o to, od którego zacząć, powiedziałbym, że Schemat jest prostszy i może być bardziej odpowiedni na początek. Z drugiej strony, jeśli masz dobrą znajomość Java i Python, możesz nie mieć nic przeciwko nurkowaniu prosto w Clojure, ponieważ, w przeciwieństwie do Schematu, zawiera elementy tych dwóch innych języków (np. Struktury danych przypominające Python i samouczki JVM/Java API centric) a znajomy teren może pomóc.

Odkąd pochodzę z wszystkich trzech (Java, Python, Scheme), jestem w dobrej pozycji, aby docenić to, co Clojure wprowadza do tabeli, która różni się od Schematu. Nie jestem doświadczonym Schemerem, ale powiedziałbym, że jeśli od razu zaczniesz z Clojure, nadal będziesz mieć ogólne doświadczenie Lisp, więc zdecydowanie nie będziesz tego przegapiał przez rezygnację z Schematu.

Powiązane problemy