Изучение Clojure путем чтения core.clj - PullRequest
16 голосов
/ 11 ноября 2010

Сегодня я встречал твит:

Начинайте каждый день с чтения реализации функции или макроса в файле Clojure core.clj.

Мои знания Clojureдействительно простой, я с трудом читаю код Clojure (или Lisp) другого.
Могу ли я хорошо работать с core.clj, особенно у меня такое ощущение, что оно полно сложных макросов?

Ответы [ 9 ]

20 голосов
/ 11 ноября 2010

Я думаю, что лучше начать с проекта;все, что вас интересует и кажется управляемым - это хорошо.

core.clj сейчас не читается;возможно, вторая половина есть, но первая половина - это не то, что я хотел бы кому-то рассказать как введение в язык.Правда в том, что даже если вы прочитаете это очень внимательно, у вас не будет четкого представления о том, что происходит, если вы не будете также читать много Java-кода.

  • Создайте асинхронную текстовую игру (техномантия - Фил Хейгельбург (Phil Hagelburg) - у нее на Github есть отличная игра, хотя пока она немного устарела)
  • Очистите сайты, используябиблиотека Enlive .
  • Может быть, просто решить некоторые математические задачи и / или
  • График вещей, используя Incanter .

Построить первым.Как только вы ознакомитесь с инструментами, которые вы используете, начните их читать.Библиотеки, упомянутые здесь, хорошо написаны (например, Кристоф Гранд не может ошибиться с чем-либо), и как только вы начнете их использовать, вы поймете , что они делают, что делаетгораздо проще выяснить почему и как позже.

8 голосов
/ 11 ноября 2010

Этот твит, вероятно, будет отличной идеей, когда у вас будет достаточно опыта, чтобы уметь читать код Clojure достаточно хорошо, чтобы понять, что происходит.

До этого момента я рекомендовал бы хорошо познакомиться с языком, написав множество небольших мини-программ. В конце концов, лучше всего учиться на практике.

Я лично нашел Project Euler очень полезным, когда я изучал Clojure.

4 голосов
/ 12 ноября 2010

Вы также можете взглянуть на Clojure Koans , хотя они могут быть немного ориентированы на новичка, в зависимости от того, сколько Clojure вы уже знаете.

3 голосов
/ 31 августа 2011

В качестве хорошей отправной точки я бы порекомендовал 4Clojure .Он похож на Project Euler и Code Katas, но имеет более щадящую кривую обучения.

2 голосов
/ 11 ноября 2010

Еще одним местом, где можно найти небольшие проекты, чтобы начать работу, может быть любое из репозиториев Kata.Мой личный фаворит на данный момент - Coding Kata.org , но есть также Coding Dojo , Ruby Koans (с небольшими усилиями по переводу) и, конечно, Google .

Попробуйте сделать один из них в день, и вы быстро выберете язык.

2 голосов
/ 11 ноября 2010

В этом есть много чего я не понимаю, но я тоже многое делаю, и очень интересно смотреть на то, как язык загружается с минимальной начальной реализации.

1 голос
/ 05 апреля 2011

Попробуйте прочитать библиотеки Clojure contrib или посмотрите на некоторые проекты Clojure на github, чтобы лучше понять идиоматический код Clojure.

0 голосов
/ 31 августа 2011

Я считаю, что clojure.core - хороший способ найти идеи о том, как все реализовано, в качестве справочного руководства.Как отмечалось ранее, ранние детали либо ни симпатичны, ни образцовы.Тем не менее, более поздние части могут быть хорошим примером, особенно когда нужно написать функцию, которая близка к основной функции, но отличается от нее.

0 голосов
/ 20 ноября 2010

Совет выше хорош. Еще один прекрасный пример обучения на собственном опыте хорошо проиллюстрирован здесь создателем Ruby on Rails: Как я могу научиться программировать? Я надеюсь, что у вас есть приложение, которое вас волнует, и вы можете просто в Clojure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...