В детстве развлекалась тем, что разглядывала карту области и выписывала оттуда всякие загадочные топонимы. Интересно, какой процент сгенерированных названий совпадает с реально существующими в итоге…
О, тоже бывало. Но всё же лучше комментарии на корейском, чем вообще никаких, и код, кхм, нетривиальный.
А так больше документация на корейском попадается, либо переписка.
Почему бы тогда, приходя на собеседование, не просить показать репозитории? А вдруг у них там код страшный, а мне потом разгребай? Не только компании выбирают сотрудников, но и наоборот.
Не знаю, будет ли для вас это определение достаточно классическим, но я его не сама придумала, а взяла из книжки Б. Пирса «Типы в языках программирования» (перевод на русский, с. 354):
Термин полиморфизм (polymorphism) обозначает семейство различных механизмов, позволяющих использовать один и тот же фрагмент программы с различными типами в различных контекстах.
У вас же та же самая ошибка, что и у дяди Боба в статье: вы считаете только один из видов полиморфизма «настоящим». То, какой именно полиморфизм дядя Боб имеет в виду, понятно из контекста, так что это больше занудство. Но то, что он это не уточнил, глаз сразу режет.
Там вообще типов нет, есть что-то типа свича на паттерн матчинге.
Звучит примерно как «да у них денег нет, они карточкой заплатят». Есть в Clojure типы, просто они не проверяются статически.
Гуманитарии — это классные ребята, которые хорошо понимают в лингвистике, философии, истории, литературе и других соответствующих областях. Не понимаю, за что вы их так.
Так-то понятно, что он имел в виду. Но зря не уточнил, как мне кажется. Особенно странно выглядит на фоне сравнения с динамически-типизированными языками, где полиморфизм (в смысле применения одного и того же кода к объектам разного типа) получается сам.
Карринг (каррирование) — это когда мы делаем новую функцию из старой с одним или несколькими аргументами.
Какое-то не очень понятное определение. Каррированная функция — это функция, которая принимает один аргумент, и возвращает другую функцию, которая принимает остальные.
Во многих функциональных языках вообще не существует функций нескольких аргументов, они эмулируются либо с помощью каррирования, либо с помощью кортежей.
Давно не писал на F#, пример из головы: взяли, поменяли что-то в теле функции, тип int поменялся на string и получили ошибки во всех местах вызова, хотя хотелось бы получить одну ошибку, что возвращаемое значение не соответствует декларируемому типу.
А если это не ошибка, а какой-нибудь глобальный рефакторинг? Тогда как раз удобно будет во всех местах вызова исправлять.
А так больше документация на корейском попадается, либо переписка.
Ну что вы, разве полнота по Тьюрингу означает, что можно использовать такой язык «наравне»?
Термин полиморфизм (polymorphism) обозначает семейство различных механизмов, позволяющих использовать один и тот же фрагмент программы с различными типами в различных контекстах.
У вас же та же самая ошибка, что и у дяди Боба в статье: вы считаете только один из видов полиморфизма «настоящим». То, какой именно полиморфизм дядя Боб имеет в виду, понятно из контекста, так что это больше занудство. Но то, что он это не уточнил, глаз сразу режет.
Звучит примерно как «да у них денег нет, они карточкой заплатят». Есть в Clojure типы, просто они не проверяются статически.
Кстати, почему автор говорит так, будто в ФП нет полиморфизма?
Во многих функциональных языках вообще не существует функций нескольких аргументов, они эмулируются либо с помощью каррирования, либо с помощью кортежей.
А если это не ошибка, а какой-нибудь глобальный рефакторинг? Тогда как раз удобно будет во всех местах вызова исправлять.