Запитання з тегом «lambda-calculus»

λ-числення - це формальна система визначення функції, застосування функції та рекурсії, яка складає математичну основу функціонального програмування.

3
Чи є різниця між та ?
В даний час я вивчаю обчислення лямбда і мені було цікаво наступні два різні види написання лямбда-терміна. λxy.xyλxy.xy\lambda xy.xy λx.λy.xyλx.λy.xy\lambda x.\lambda y.xy Чи є різниця в значенні чи способі застосування бета-версії, чи це лише два способи виразити одне і те ж? Особливо таке визначення створення пари змусило мене замислитися: пара …

2
Універсальне / екзистенціальне кількісне визначення?
Я намагаюся зрозуміти мету універсального та екзистенційного кількісного визначення типів. Я граю разом із написанням іграшкової мови на основі обчислення конструкцій . Я читав про Морта та Хенка, щоб допомогти мені краще зрозуміти. Я не розумію, чому у Кок є як лямбда, так і всебічна абстракція. (λx:A.B)(λx:A.B)(\lambda x:A . B) …

1
Короткий приклад експоненціальної вартості висновку типу ML
Мені було звернуто увагу, що вартість виведення типу у такій функціональній мові, як OCaml, може бути дуже високою. Твердження полягає в тому, що існує послідовність виразів, така що для кожного виразу довжина відповідного типу є експоненціальною щодо довжини виразу. Я розробив послідовність нижче. Моє запитання: чи знаєте ви послідовність з …

2
Чи є обчислення SK2 повна основа, де K2 - перевернутий комбінатор K?
Зокрема, якщо я визначив новий K2K2K_2 як K2=λx.(λy.y)K2=λx.(λy.y)K_2 = \lambda x. (\lambda y. y) замість K=λx.(λy.x)K=λx.(λy.x)K = \lambda x. (\lambda y. x) буде {S,K2,I}{S,K2,I}\{S, K_2,I\} -калькуляція є конкурентною основою? Я здогадуюсь "ні", просто тому, що я не можу створити звичайний K-комбінатор з комбінаторів SSS , III та K2K2K_2 , але …

5
Генератор обчислення лямбда
Я не знаю, де б ще задати це питання, сподіваюся, це хороше місце. Мені просто цікаво дізнатись, чи можливо зробити генератор лямбдального числення; по суті, петля, яка дасть нескінченний час, виробляє всі можливі функції обчислення лямбда. (як у формі рядка). Оскільки обчислення лямбда є таким простим, маючи лише кілька елементів …

2
Злиття бета-розширення
Нехай - -редукція у -calculus. Визначити -разложеніі по .→ β→β\to_\beta β β\betaλ λ\lambdaβ β\beta← β ←β\leftarrow_\betat ′ ← β t⟺t → β t ′t′←βt⟺t→βt′t'\leftarrow_\beta t \iff t\to_\beta t' Чи ? Іншими словами, чи маємо ми, що для будь-якого , якщо l \ to_ \ beta ^ * d \ leftarrow_ …

1
Аналіз складності алгоритму щодо реалізації функціональної мови програмування
Я сьогодні дізнався, що алгоритм аналізу відрізняється на основі обчислювальної моделі. Це те, про що я ніколи не думав і не чув. Приклад, поданий мені, що ілюстрував це далі, користувачем @chi : Наприклад, розгляньте завдання: задане повернення x i . У оперативній пам'яті це можна вирішити в O ( 1 …

1
Чи роблять Self Types обчислення індуктивних конструкцій застарілими?
Self Types - це розширення обчислення конструкцій [1], що дозволяє мові виражати алгебраїчні типи даних, кодовані через кодування Скотта. Кодування Скотта забезпечує одну можливість узгодження зразка O(1), яка є одним з основних мотиваторів для включення індуктивних визначень на CC. Тим не менш, Self Types створюють набагато простішу і елегантну теорію …

2
Комбінаційна інтерпретація лямбдального числення
За словами Пітера Селінджера , обчислення лямбди є алгебраїчним (PDF). На початку цієї статті він говорить: Як відомо, комбінаторне тлумачення лямбда-числення є недосконалим, оскільки воно не задовольняє ξξξ -правило: під інтерпретацією M=NM=NM = N не означає λx.M=λx.Nλx.M=λx.N\lambda x.M = \lambda x.N (Barendregt, 1984). Запитання: Яка рівнозначність тут мається на увазі? …

2
Визначте список, використовуючи лише систему типу Hindley-Milner
Я працюю над невеликим компілятором обчислення лямбда, який має працюючу систему виводу типу Хіндлі-Мілнера, і тепер також підтримує рекурсивну, давайте (не у зв'язаному коді), що, на мою думку, повинно бути достатньо, щоб зробити Тьюрінг завершеним . Проблема зараз полягає в тому, що я не маю уявлення, як скласти списки його …

2
Що робить обчислення лямбда важливими для дослідження?
Наступної осені я розпочинаю бакалавратський курс інформатики, але я не можу зрозуміти λ-числення в контексті функціонального програмування. Я, можливо, неправильно трактую це, але виходячи з цього визначення з Енциклопедії філософії Стенфорда, це лише чергове позначення функцій. Якщо це як раз те, чому це вигідно використовувати λ-числення над регулярною функцією нотацією …

3
анонімні лямбда-функції (функціональне програмування)
Що таке анонімні (лямбда) функції? Яке формальне визначення анонімної функції у функціональній мові програмування? Простіше кажучи, коли я програмую схему / lisp, я б сказав, що анонімна (лямбда) функція - це функція, яка не пов'язана з ідентифікатором. Це все, що можна формально сказати про функцію лямбда? Я думаю, є більше …

1
Оцінка обчислення лямбда за участю церковних цифр
Я розумію, що церковна цифра виглядає як (... n разів ...) . Це означає не що інше, як "функція застосована разів до функції ". λ s . λ z . s scнcnc_nλ s . λ z. сλs.λz.s\lambda s. \lambda z. ss n zсzszs\;zсssнnnzzz Можливе визначення функції таке: . Дивлячись на …

1
λ -рахунок: Що є найбільш ефективним у представленні функцій пам'яті?
Я хотів би порівняти продуктивність функцій, кодованих (Церква / Скотт), з класично кодованими (асемблером / С) структурами даних. Але перш ніж це зробити, мені потрібно знати, наскільки ефективно / може бути функціональне представлення в пам'яті. Звичайно, функція може бути частково застосована (також закриття). Мене цікавлять як поточний алгоритм кодування, який …

1
Що таке суперсвіт?
Я читаю цю відому працю про Всесвіти в теорії типів . Спочатку я очікував щось подібне Setωв Агді, але виявляється, що це навіть щось більш загальне. Здається, узагальнено побудову Всесвіту від простого індуктивно-рекурсивного типу до сполучного (подібне доΠΠ\Piі ). Головне питання, яке я хочу задати, - який задум стоїть?ΣΣ\Sigma Ось …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.