Как заставить мой мозг двигаться в «режиме шуток»? - PullRequest
24 голосов
/ 03 марта 2009

Мой профессор сказал нам, что мы можем выбрать язык программирования для нашего следующего задания. Я хотел попробовать функциональный язык, поэтому я решил попробовать clojure. Проблема в том, что я понимаю синтаксис и понимаю основные понятия, но у меня возникают проблемы с тем, чтобы все «щелкнуло» в моей голове. У кого-нибудь есть совет? Или я выбираю не тот язык, чтобы начать функциональное программирование?

Ответы [ 18 ]

1 голос
/ 04 марта 2009

В дополнение к тому, что уже предложили другие SO, вот мои 2 цента:

  1. Начните изучать язык и попробуйте несколько простых числовых / хобби проблем на языке
  2. ВАЖНО: Опубликовать решение / код в StackOverflow, спрашивая мнение людей, действительно ли это LISPy способ сделать это.

Удачи!

1 голос
/ 03 марта 2009

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

1 голос
/ 03 марта 2009

Для меня важно убедиться, что вы делаете все «шутливо». Не поддавайтесь соблазну думать: «В Java я бы использовал цикл for здесь, как мне сделать цикл в Lisp?» но чтобы пройти достаточное количество примеров и учебных пособий (как кто-то указал, SICP идеально подходит для этого), вы можете начать замечать, когда код выглядит как «Lisp-y» и распознавать парадигмы общего языка.

Я, конечно, знаю, что я смотрю на какой-то код, который я только что написал, и интуитивно знаю, что он правильно идиоматичен для этого языка и платформы / фреймворка - я думаю, это когда он «щелкает».

Редактировать : И слава выбора функционального языка, ученики младшего возраста просто сделали бы это на Java:)

1 голос
/ 03 марта 2009

Кто сказал, что собирается щелкнуть? Я всегда в замешательстве

Но если вы подумаете о том, сколько абстракции можно спрятать за макросами LISP. Тогда ваш мозг взорвется.

:)

1 голос
/ 03 марта 2009

Я бы начал с языка, который можно интерпретировать. Я нашел Moscow ML довольно простым. Это легкая реализация стандарта ML.

1 голос
/ 03 марта 2009

Если у вас нет alrady, прочитайте, что делает lisp уникальным языком. Если вы не сделаете это в первую очередь, вы будете пытаться делать то же самое, что вы могли бы делать в некоторых других языках программирования.

Затем попытайтесь реализовать какую-нибудь мелочь (постарайтесь сделать ее полезной для вас, или у вас может не быть мотивации).

Лисп в коробке - отличный способ намочить ноги.

1 голос
/ 03 марта 2009

Удачи. Мне потребовалось примерно половину курса «Языки программирования» в колледже, прежде чем «щелкнул» Схема. Но когда это произошло, все стало понятно, и я влюбился в функциональное программирование.

Напишите интерпретатор Лиспа на Лиспе.

1 голос
/ 03 марта 2009

Моя личная практика - найти небольшой проект (который может занять 3-5 ночей взлома) и реализовать его. Как насчет инструмента фильтра блога? Может быть, просто реализация Ханойских башен или связанного списка (обычно это однодневные проекты).

Обычно так получается, что я плохо внедряю его в первый раз, выбрасываю то, что у меня было, и, наконец, через несколько часов.

ОГРОМНАЯ помощь - пройти курс обучения на что-то вроде ... хм ... ЛИСП! :) Домашнее задание заставит вас противостоять многим концепциям, и оно задело меня задолго до окончания семестра.

Удачи !!

...