![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#81 | ||||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
|
||||
![]() |
![]() |
![]() |
#82 | ||||||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Так что не надо нам чистить уши относительно чистоты Хаскелла - он такой же как и Делфи ![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 27.12.2013 в 06:30. |
||||||
![]() |
![]() |
![]() |
#83 | |||||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
![]() Никто ничего не перекомпилирует |
|||||
![]() |
![]() |
![]() |
#84 | |
МегаМодератор
СуперМодератор
Регистрация: 27.11.2012
Сообщений: 5,714
|
![]() Цитата:
Суть инкапсуляции не меняется - можно огородить блок от внешних изменений, можно изменения внешнего от блока. Можно приплести в довесок еще кучу абстракций - ничего не изменится. Это не зависит от способа кодирования - пост/префикс/инфикс- - все равно можно огородить пространство с любой стороны. Все вопросы к реализации компилятора/интерпретатора - расспараллелить можно любой код разрезом потока данных без участия программиста. З.Ы. Более всего фанаты ФП напоминают фанатов ассемблера:D Учите Пролог - он порвет Ваше представление об идеи функциональной зависимости симметрией ввода/вывода.
Благими намерениями устлана дорога на programmersforum.ru
Последний раз редактировалось MihalNik; 27.12.2013 в 10:06. |
|
![]() |
![]() |
![]() |
#85 | ||||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 28.12.2013 в 21:21. |
||||
![]() |
![]() |
![]() |
#86 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
![]()
просто оставлю это здесь : apl
Последний раз редактировалось Levsha100; 29.12.2013 в 00:19. |
![]() |
![]() |
![]() |
#88 | |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#89 | |||||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]() Цитата:
Цитата:
А что-то меняющееся для привычке людям перешедшим с императивных языков называют переменными, но на самом деле объекты в фп не меняются, их можно только создавать и нельзя разрушать. Например что-бы добавить элемент в конец списка, нужно целиком создать новый список. Именно поэтому в фп очень хорошо развит сборщик мусора и встроенные средства оптимизации, которым на руку мат. строгость и чистота языка. Цитата:
Цитата:
Монады ≠ нечистота. Например списки это тоже монада. Functor тоже монада, например обобщение для map Код:
fmap (+1) [1,2,3,4] тоже вернет [2,3,4,5] Но если определит свой контейнер например Tree как воплощение Functor: Код:
Относительно IO, так называемой "грязной" стороне языка. Существует связь между чистотой и ленивостью. Программа на функциональном языке представляет собой суперпозицию функций, т.е. на выходе получается функция. Аргументы у функции могут быть определены не сразу, вот так захотелось, хочу их ввести уже после получения части вычислений ) и в силу "всеобщей" ленивости языка это становится допустимым. Ведь какая разница, если мы заранее определимся с тем, какие данные передадим программе или будем их подавать порциями. Естественно если все данные засунуть в программу целиком, то и получим один и тот же результат да и если будем постоянно вводить(включая третью сторону, базы всякие, файлы ...) по мере необходимости те же данные, то тоже получим один и тот же результат. Вывод промежуточных результатов также не влияет на чистоту, меняется состояние внешней среды, но не внутри функции, если вся система вывода была построена на фп, то приходим к тем самым переменным, чтобы перерисовать форму, создаем новую на основе старой + изменения, а старая почистится сборщиком. При умной реализации всего этого, мы как программисты будем видеть создание нового объекта, а компилятор подсуетится, чтобы изменился уже существующий объект в памяти, если на него больше никто не ссылается(встроенные функции в Erlang например так делают) Так что о "грязности" IO в ленивых языках еще можно поспорить. Возможно вы опять воскликните, что если в программу на Делфи тоже засовывать одни и те же аргументы, то она тоже будет срабатывать одинаково. Это так, но Цитата:
|
|||||
![]() |
![]() |
![]() |
#90 |
Пользователь
Регистрация: 14.04.2013
Сообщений: 62
|
![]()
Если малое количество символов в языке можно назвать лаконичностью, то можно приписать и сравнительно новый Whitespace - всего два символа, если не считать перевода строки.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вопросик самым опытным :-) | Doholyan | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 25.08.2009 17:13 |
Проблема с синтаксисом? | Geddar | PHP | 1 | 30.06.2008 16:44 |
Казус с синтаксисом???... | Sota | Общие вопросы C/C++ | 6 | 17.07.2007 19:15 |