Есть ли разница между

11

В настоящее время я изучаю лямбда-исчисление, и мне было интересно узнать о двух разных видах написания лямбда-термина.

  1. λxy.xy
  2. λx.λy.xy

Есть ли разница в значении или способе применения бета-сокращения, или это просто два способа выразить одно и то же?

Особенно это определение создания пары заставило меня задуматься:

пара = λxy.λp.pxy

magnattic
источник

Ответы:

15

Это просто различия в обозначениях. коротка для . Никакой магии здесь.λxyz.tλx.λy.λz.t

Действительно, но вы склонны подчеркивать, что является функцией , изменяя способ написания определения. Но это действительно то же самое.pair=λxyp.pxypairtuλp.ptu

jmad
источник
17

Первый аббревиатура для второго. Это общее синтаксическое соглашение для сокращения выражений.

С другой стороны, если у вас есть кортежи в языке, то есть разница между

  1. λx.λy.xy и
  2. λ(x,y).xy .

В первом случае я могу предоставить один аргумент функции и передать полученную функцию другим функциям. В последнем случае оба аргумента должны быть предоставлены одновременно. Конечно, есть функция, которая может быть применена для преобразования 1 в 2 и наоборот. Этот процесс известен как (не) карри .

Упомянутое вами определение является кодированием понятия пар в -calculus, а не пар как примитивного типа данных (как я уже говорил выше).pairλ

Дэйв Кларк
источник
2

Преобразование функции, которая принимает несколько аргументов в цепочку функций с одним аргументом, называется каррированием . Две функции по сути одинаковы.

Статья про карри из Википедии

Гассен Хамруни
источник
8
В лямбда-исчислении не существует функции, принимающей несколько аргументов. является точно такой же , как , не только в основном то же самое. λxy.xyλx.λy.xy
sepp2k