Size: a a a

Clojure — русскоговорящее сообщество

2020 March 06

AV

Abyr Valg in Clojure — русскоговорящее сообщество
Tim Plotnikov
Если честно, не интересовался что там с типами, но знаю что идеи функционального программирования пошли от Чёрча и его лямбда-исчесления. Которое, в свою очередь позволяло фигачить функции прям в том месте где они были нужны и тут же получать результат и заворачивать в другую функцию и пошло-поехало.

Вот эту кстати вложенность очень прикольно видно если в хацкеле do-нотацию развернуть)
А мне вот интересно, можно ли сделать алгоритм, который по лямбде скажет ее результат без эвальюации?
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
read { number1 ->
 read { number2 ->
   write(number1 + number2)
 }
}

Вот вам и аналог лямбда-исчесления, без хранения состояния вообще, только лишь функции одни)
источник

T

Timmy B in Clojure — русскоговорящее сообщество
Abyr Valg
А мне вот интересно, можно ли сделать алгоритм, который по лямбде скажет ее результат без эвальюации?
ты сам понял что сказал?
источник

AV

Abyr Valg in Clojure — русскоговорящее сообщество
Timmy B
ты сам понял что сказал?
Нет )
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Abyr Valg
А мне вот интересно, можно ли сделать алгоритм, который по лямбде скажет ее результат без эвальюации?
Поясните. Если вы проанализировали код и смогли узнать результат, который продьюсит этот код, то вы его «выполнили»
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Vyacheslav Mikushev
Потому что типы в лямбда исчисление приехали позднее.
По крайней мере, я так предполагаю.:)
источник

AV

Abyr Valg in Clojure — русскоговорящее сообщество
Tim Plotnikov
Поясните. Если вы проанализировали код и смогли узнать результат, который продьюсит этот код, то вы его «выполнили»
А можно без исполнения?
источник

λ

λoλmouse in Clojure — русскоговорящее сообщество
Sergey Trofimov
есть типы в кложе
строгая динамическая типизация
в компайл-тайм нет типов, об этом речь
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Abyr Valg
А можно без исполнения?
нет. Даже если вы посмотрите на выражение «2 + 2» и скажете что оно вернет 4, то вы всё равно выполнили этот код. И не важно что проделали в своей голове)
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Sergey Trofimov
есть типы в кложе
строгая динамическая типизация
Строгая ли?:)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
источник

AV

Abyr Valg in Clojure — русскоговорящее сообщество
Tim Plotnikov
нет. Даже если вы посмотрите на выражение «2 + 2» и скажете что оно вернет 4, то вы всё равно выполнили этот код. И не важно что проделали в своей голове)
А можно хотя бы написать алгоритм, определяющий, что программа завершится успешно?
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
λoλmouse
в компайл-тайм нет типов, об этом речь
Типы есть всегда))
динамическая типизация лишь говорит о том, что в разный момент времени тип может быть разный))

Думаю вы хотели сказать что тип не известен во время компиляции))
Он есть всегда, просто чтобы его узнать, надо туда посмотреть))
источник

λ

λoλmouse in Clojure — русскоговорящее сообщество
Tim Plotnikov
Типы есть всегда))
динамическая типизация лишь говорит о том, что в разный момент времени тип может быть разный))

Думаю вы хотели сказать что тип не известен во время компиляции))
Он есть всегда, просто чтобы его узнать, надо туда посмотреть))
то есть узнать тип можно только в рантайме?
источник

λ

λoλmouse in Clojure — русскоговорящее сообщество
это же ненадежно
источник

AV

Abyr Valg in Clojure — русскоговорящее сообщество
Tim Plotnikov
Типы есть всегда))
динамическая типизация лишь говорит о том, что в разный момент времени тип может быть разный))

Думаю вы хотели сказать что тип не известен во время компиляции))
Он есть всегда, просто чтобы его узнать, надо туда посмотреть))
вот надо бы написать алгоритм, узнающий тип S-expression без его оценки
источник

AV

Abyr Valg in Clojure — русскоговорящее сообщество
Тогда будет хорошо и удобно
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Abyr Valg
вот надо бы написать алгоритм, узнающий тип S-expression без его оценки
Только толку от этого?
Ну вот узнали мы тип на этапе компиляции, а в рантайме он возьми да и поменяйся. Толку от этих знаний?)
источник

VM

Vyacheslav Mikushev in Clojure — русскоговорящее сообщество
Tim Plotnikov
Типы есть всегда))
динамическая типизация лишь говорит о том, что в разный момент времени тип может быть разный))

Думаю вы хотели сказать что тип не известен во время компиляции))
Он есть всегда, просто чтобы его узнать, надо туда посмотреть))
По-моему, не всегда. Если, конечно, не считать целое число типизацией.:) Например, в ассемблере и форте есть только один тип.
источник

AV

Abyr Valg in Clojure — русскоговорящее сообщество
Tim Plotnikov
Только толку от этого?
Ну вот узнали мы тип на этапе компиляции, а в рантайме он возьми да и поменяйся. Толку от этих знаний?)
правильно, типы нафиг не нужны
источник