Хорошие ресурсы для изучения Фактора
Недавно познакомившись с этим введением в Фактор, мне стало немного интересно узнать больше. Помимо официального FAQ, упомянутого там, есть ли у вас ресурсы для изучения языка (а также основанная на стеке "парадигма", если это правильное слово), который вы сочли полезным?
В качестве примечания, поможет ли изучение Forth, или это похоже на сравнение C с Python (или что у вас)?
6 ответов
Вы можете начать здесь: http://concatenative.org/wiki/view/Factor
И есть хорошая документация, включенная в среду выполнения /GUI. Просто установите, а затем "Браузер", и вы увидите документацию с такими темами, как "Ваша первая программа".
Документация доступна также онлайн: http://docs.factorcode.org/
(Это то же самое, что вы получаете при установке Factor.)
Не забудьте подписаться на планетарный фактор.
Фактор в значительной степени вдохновлен Forth и другими стековыми языками. Он также собирает идеи от Lisp и Smalltalk. Из того, что я читал в Интернете, нет необходимости изучать любой из этих языков, прежде чем изучать Фактор. Это не повредит, если вы делаете, однако:)
Самая большая проблема, с которой я столкнулся, - это молодость языка. Другими словами, примеры кода на различных блогах / сайтах будут устаревшими, поскольку они использовали более старые версии Factor (0,6, 0,7, 0,8 и т. Д.). Фактор 0,9 и выше, скорее всего, останется прежним.
Как только вы освоите основы, документы (онлайн + в слушателе) станут достаточно понятными. Документы иногда страдают от той же проблемы, что и сообщения в блоге: некоторые устаревшие примеры кода. У вас все еще есть списки рассылки /IRC, чтобы помочь, если вы действительно застряли.
До сих пор я использовал только документы, а не списки рассылки /IRC. Затем я экспериментирую со слушателем для дальнейшего изучения / изучения новой концепции, которую я найду в документации.
Это первый язык, на который я отвечаю на большинство моих вопросов, просто копаясь в документации по функции. Большая часть Фактора написана на Факторе, поэтому все становится понятнее, если вы проводите больше времени с документами.
(Вторая самая большая проблема, с которой я столкнулся, - это попытаться понять веб-фреймворк (Furnace). Веб-фреймворк является более многофункциональным, чем я привык. В этом нет ничего невозможного, просто требуется некоторая практика и изучение документов.)
Самое быстрое вступление. к найденным языкам сцепления: http://github.com/raganwald/homoiconic/blob/master/2008-11-16/joy.md#readme
Ваши первые шаги к фактору: http://concatenative.org/wiki/view/Factor/Learning
Эти видео более подробно касаются написания кода Фактора:
- 90-минутное видео может помочь в изучении основ Фактора: YouTube: Фактор: расширяемый, интерактивный язык - в основном, Слава (Создатель Фактора) дает видео вступление. Фактору. Это часть серии Google Talk. (Существует версия высокого и низкого качества, если вы не видите слайды.) Факторные понятия также сравниваются с другими языками.
- 13-минутное видео: Forth @ RubyConf 2008. Краткое демо Форта. В нем также упоминаются некоторые идеи, которые распространены во всем мире программного обеспечения.
- 100-минутное видео: Фактор представлен программистам на Лиспе. Звук не самый лучший, но качество видео очень хорошее. Если вы смотрите другие видео, вы можете пропустить некоторые из начальных частей этого.
Некоторые диверсии:
- Создать калькулятор + графический интерфейс: http://re-factor.blogspot.com/2010/08/calculator-with-gui.html
- "Почему мне нравится фактор": http://jedahu.blogspot.com/2010/08/why-i-like-factor.html
- Планета Фактор: http://planet.factorcode.org/
Вот некоторые сообщения в блоге, которые могут помочь определить направление:
- С января 2008 года, но все еще должно применяться: "Учебный фактор" Даниэля Эренберга (Он является одним из основных участников Фактора.)
- Следующая цитата из поста в блоге за сентябрь 2008 года: Сортировка строк со встроенными числами
Понимание различных доступных абстракций и библиотек является ключом к пониманию фактора: коллекции, общие слова, фрая, локальные объекты, макросы, запоминание, PEG, prettyprinter и так далее. Эффективное использование этих инструментов может на порядок сократить объем работы, необходимой для решения проблемы.
Фактор, безусловно, самый забавный язык. В нем меньше сюрпризов, чем в других языках. Мне легче учиться, чем Ruby или Lisp. Просто для удовольствия, вот языковая перестрелка между Lisp и Factor:
Для тех, кто интересуется основанными на стеке языками, эта статья может помочь: Радость Catenative Языков (части 1, 2, 3) (Она носит более общий характер и использует язык Cat для примеров. Она помогла мне изучить основы Factor.)
Я думаю, что отличная презентация Славы Пестова " Фактор: расширяемый интерактивный язык" в Google (Google Tech Talk) считается хорошим ресурсом для изучения Фактора. Существует множество демонстраций различных аспектов Фактора, которые вы должны попробовать в своей системе. Например, демонстрация использования Factor для реализации сервера времени в Интернете, ок. 1 ч. 07 мин. 20 сек. И лексическое замыкание 46 мин. 35 сек. На самом деле большая часть презентации - это демо.
Флэш-видео - 141 МБ, 1 ч 36 мин 38 с, время презентации осень 2008 года. Слава Пестов - создатель языка программирования Factor и популярного текстового редактора jEdit.
Я недавно учил себя Фактору - я действительно нашел Форта хорошим введением в концепцию стековых языков (и, как немного археолог программного обеспечения, забавно отступить на несколько лет на урок истории).
В связи с этим я не думаю, что было бы вредно потратить несколько часов на установку gforth или аналогичной реализации Forth и начать работать через первые несколько глав, посвященных началу работы или использованию ANS вперед - я нашел это довольно интересным, и потому что я только опустив носок, это не научило меня чему-то, что мне пришлось отучиться, когда я начинаю учить фактор.
Как только я продвинусь в изучении Фактора, я дам вам знать, что я нашел полезным (или не очень полезным!).
Вы также можете начать с Forth, поскольку это тоже язык на основе стека:
(Редактировать: обновленная ссылка Jonesforth на новый репозиторий git - 18.04.14)
Я надеюсь, что мой интерактивный инструмент поможет http://factor.openeducationtools.com/