Как эффективно изучить OCaml?

Хорошо, я программист на Java без каких-либо знаний по функциональному программированию.

Теперь я в настоящее время изучаю OCaml в течение 2 недель, и я не знаю даже о OCaml.

Здесь предлагаются несколько учебников и книг:

https://stackoverflow.com/info/2073436/ocaml-resources

но ни один из них не кажется дружелюбным. На самом деле, я имею в виду.

Нет учебников или книг, по крайней мере, дает мне быстрый старт Hello World. через две недели я даже не знаю, что такое program entrance Ocaml (например, a main()).

Я даже не знаю, как действительно писать коды OCaml в файл, и каким-то образом позволить OCaml скомпилировать его.

Хорошо, жалобы закончены.

Я должен научиться этому и делать это хорошо. Итак, не могли бы вы дать мне несколько советов по изучению этого? Я чувствую, что OCaml очень мрачен и трудно понять. Пожалуйста, просветите мою дорогу.

Ответ 1

Вы попробовали сайт TryOCaml? Это может быть хорошим началом.

Ответ 2

Я впервые встретился с OCaml 4 года назад, и мне нужно было добавить некоторые небольшие функции к существующему студенческому проекту в университете. Я начал с учебник OCaml, и я понял, насколько это удивительный язык. Затем я попытался написать более или менее большие программы в OCaml и начал задавать вопросы сообщества. По моему опыту, я думаю, вам нужно то же самое. Возьмите любимую область программирования (веб-инструменты, инструменты unix, графику и игры, настольные приложения), возьмите проект, который не слишком большой или сложный для вашего первого приложения. Я думаю, что сообщество OCaml может помочь вам решить. Вы можете связаться с ними в maillist, но я больше предпочитаю IRC-сервер Freenode. А потом просто напишите какой-то код, и если что-то странно спросите!

С наилучшими пожеланиями, Какаду

P.S. Я надеюсь, что OCaml станет вашей следующей большой любовью, поскольку это стало для многих из нас.

Ответ 3

В моем личном опыте я обнаружил, что хорошее знание λ-исчисления обеспечивает хороший вход (платформу) для изучения функционального языка любого. Но опять же это то, как я познакомился с функциональным программированием, поэтому я не могу сравнивать его с другими подходами.

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

Обратите внимание, однако, что λ-исчисление в основном говорит только о аспекте functions. Но как только вы понимаете функциональный способ вычисления, остальная часть языка должна быть легко решена (по крайней мере, так, как я себя чувствовал).

Не уверен, помог ли я или сделал это более запутанным.