Size: a a a

2021 April 07

к

кана in Haskell
и несвободные переменные мб, не помню
источник

JS

Jerzy Syrowiecki in Haskell
нет, там нет функций, там есть абстракции, то есть код, и не любая абстракция выражает функцию
источник

L

Lierdakil in Haskell
но его можно расширить настоящими данными
источник

L

Lierdakil in Haskell
собственно первое что с ним делают обычно...
источник

JS

Jerzy Syrowiecki in Haskell
так, ну-ка подробнее. что за "настоящие данные"? давайте определение
источник

AK

Aleksey Kislitsa in Haskell
Во всяком случае GHCI разницы не видит
*Main Lib Paths_lhHello0001> f = 3
*Main Lib Paths_lhHello0001> :t f
f :: Num p => p
*Main Lib Paths_lhHello0001> :t 3
3 :: Num p => p
источник

JS

Jerzy Syrowiecki in Haskell
а у меня разница огромная

> :t 3
3 :: forall {p}. Num p => p

> :t f
<interactive>:1:1: error: Variable not in scope: f
источник

AK

Aleksey Kislitsa in Haskell
Вообще то изначально там про оперативную память и не думали, когда лямбдили исчисление, только о тетрадке
источник

JS

Jerzy Syrowiecki in Haskell
да, но это не связано
источник

AK

Aleksey Kislitsa in Haskell
У вас 3 предопределенная функция, а f нет
источник

L

Lierdakil in Haskell
В модели расширенного λ-исчисления любой терм не являющийся λ-абстракцией, применением или свободной переменной можно назвать данными в противовес "коду".
источник

AK

Aleksey Kislitsa in Haskell
Связано, так как все переменные и вообще императивщина появились исключительно по причине ограниченных вычислительных ресурсов
источник

к

кана in Haskell
хм, это цитата? Емнип абстракции тоже относятся к данным, в противовес коду
источник

к

кана in Haskell
по крайней мере на лямбда-абстракции интерпретатор заканчивает вычисление
источник

L

Lierdakil in Haskell
При полной β-редукции не заканчивает
источник

L

Lierdakil in Haskell
лезет в тело
источник

к

кана in Haskell
ну так это потому что это не лямбда-абстракция, а аппликация
источник

к

кана in Haskell
\x. x

вот тут че вычислять еще, это конечное значение
источник

к

кана in Haskell
аппликация элиминирует лямбду как матч элиминирует другое значение
источник

AK

Aleksey Kislitsa in Haskell
Вот тут захотелось услышать разницу между функцией и процедурой 😇
источник