LINUX.ORG.RU
ФорумTalks

Минимальный ЯП который будет считаться функциональным

 , , ,


1

3

Под «функциональным» имеется ввиду не широта возможностей, а ФП.

Собственно, чем должен обладать ЯП, чтобы быть функциональным?

П.С. Я знаю парочку эзотерических ЯП, которые могут попадать под мое определение, но давайте их опустим.

Перемещено tailgunner из development

Deleted

Ответ на: комментарий от Bad_ptr

Чет не понятно. Приведи псевдокод, чтоб можно было обсудить.

Deleted ()
Ответ на: комментарий от Bad_ptr

Переменных нет.
А по теме, SKI Calculus. Соответственно Unlambda.

Unununij ★★★★ ()
Ответ на: комментарий от Deleted

Это не ЯП, конечно. Но набор требуемых конструкций оттуда можно извлечь. Или просто посмотреть ранний Lisp.

tailgunner ★★★★★ ()

чем должен обладать ЯП, чтобы быть функциональным?

Разве само слово «функциональный» применительно к ЯП не содержит ответа на твой вопрос? Очевидно функциями.

mbivanyuk ★★★★★ ()

Лямбда-исчисление.

/thread

Zenom ★★★ ()

Нет глобальных переменных - чистые функции и функции первого порядка. Вроде всё.

vvn_black ★★★★★ ()
Последнее исправление: vvn_black (всего исправлений: 1)

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

Если говорить про человеческую поддержку функционального стиля программирования - функция должна захватывать переменные (хотя бы выше по стеку, а в идеале вообще любые), желателен сахар для inline-объявления функции.

Многие считают, что функциональный стиль подразумевает иммутабельность. Я с этим не согласен, но это уже вопрос определений.

Legioner ★★★★★ ()

П.С. Я знаю парочку эзотерических ЯП, которые могут попадать под мое определение, но давайте их опустим.

Давай опустим. Называй.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от Virtuos86

Unlambda — минимальный функциональный язык программирования, придуманный Дэвидом Мэдором (David Madore).

Про этот эзотерический ЯП я знаю давно. Я бы хотел, не знаю, «детский ФЯП», чтобы просто основные отличия от императивщины заценить.

Deleted ()

Java таки однозначно.

Теперь, тому, кто на собеседовании умничает, что знает Java 8 и 9, тому примеры задаю.

Яйцеголовые умники-«титиретики» на конкретных задачках из книжки Ричарда Уорбэртона сразу же начинают бормотать что-то невнятное.

Потеха!

Bioreactor ★★★★★ ()
Ответ на: комментарий от Bioreactor

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

dave ★★★★★ ()
Ответ на: комментарий от dave

Нет, я проверяю знания по Java.

И особенно - что _практически_ соискатель делал.

Даже, если он не знает, как там устроен HashMap и сколько там «бакитов» по умолчанию.

У нас не «спортивное программирование», а enterpriZe.

«Самоутверждения» - это вопросы про «роботов-парашютистов», таблетки(sic!), которые надо делить пополам и т.п. «тупаки» якобы на «сообразительность».

Тугодум-умница намного более ценен для компании, чем нахватавшийся верхушек выскочка.

Bioreactor ★★★★★ ()
Ответ на: комментарий от Bioreactor

Но Java, мягко говоря, не является функциональным языком, хотя и позволяет записать очень многое из ФП, если не почти все, но какой ценой это будет сделано? Вот в чем вопрос. А к функциональным обычно относятся те языки, которые способствуют написанию программ в функциональном стиле, а Java, очевидно, к таковым не относится

dave ★★★★★ ()
Ответ на: Минимальный ЯП от Vladimir1982

Ну ты некрофил

То и значит. Какими конструкциями и операторами должен обладать язык, чтобы считаться функциональным ЯП?

По идее, ранний лисп (как сказал tailgunner) подходит в качестве ответа на мой вопрос.

Deleted ()
Ответ на: Ну ты некрофил от Deleted

Bizun

++Ну ты некрофил++

Это что?

++По идее, ранний лисп (как сказал tailgunner) подходит в качестве ответа на мой вопрос.++

А Haskell?

Vladimir1982 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.