Tipik Lambda Hesabı ve Lisp Arasındaki Tarihsel İlişki?


16

Yakın zamanda bir arkadaşımla (çok iyi yazılmış dillerin savunucusu olan) bir tartışma yapıyordum. Yorum yaptı:

Lambda Matematik'in mucitleri her zaman yazılmasını istediler.

Şimdi görebilirsiniz Kilisesi ile ilişkili bulunmuştur Basitçe Yazılan Lambda Calculus . Gerçekten de, Lambda Hesabı hakkındaki yanlış anlaşılmayı azaltmak için Basitçe Yazılan Lambda Analizini açıklamış gibi görünüyor.

Şimdi John McCarthy Lisp'i yarattığında - Lambda Calculus'a dayandırdı . "Sembolik ifadelerin özyinelemeli işlevleri ve bunların makine ile hesaplanması, Bölüm I" i yayınladığında, bu kendi kabulüdür . Sen edebilirsiniz buradan okuyun .

McCarthy, Basitçe Yazılmış Lambda Analizine hitap etmemiş gibi görünüyor. Bu ML ile Robyn Milner hakimdir .

Burada Lisp ve Lambda Calculus arasındaki ilişki hakkında bazı tartışmalar var , ancak McCarthy'nin neden tipsiz bırakmayı seçtiklerinin altına inmiyorlar.

Benim sorum: McCarthy Lambda Calculus'u bildiğini kabul ederse - Typed Lambda hesabını neden görmezden geldi? (yani - Lambda Calculus'un yazmak istendiği gerçekten açık mı? Bu şekilde görünmüyor)


1
Muhtemelen Yazılan Lambda Analizinin Turing-tamamlanmamış olmasıyla bir ilgisi vardır.
Jan Johannsen

Teşekkürler @ JanJohannsen - bunu genişletebilir misin?
Hawkeye

Yanıtlar:


17

İlk olarak, arkadaşınız hesabının geçmişi hakkında yanlış . Kilise önce matematik için bir temel oluşturmayı amaçladığı türlenmemiş hesabı yarattı. Oldukça hızlı bir şekilde, bu analizden türetilen mantığın tutarsız olduğu keşfedildi (çünkü sonlandırıcı olmayan programlar mevcuttu). Sonunda Kilise basit tip teorilerini ve daha birçok şeyi geliştirdi, ama bu sistemin orijinal noktası değildi.λ

Bu makalede tarihin mükemmel bir özeti bulunmaktadır .

İkincisi, basit yazılan lambda hesabı oldukça kısıtlayıcı bir dildir. İçine ilginç bir program yazmak için bir tür özyinelemeli türe ihtiyacınız vardır. Elbette, McCarthy'nin orijinal belgesindeki program türlerini 1958'de anlaşılan calculi tabanlı tip sistemleri ile yazmak imkansız olurdu . Bu noktada en son programlama tipi sistemler Fortran ve COBOL'da bulunanlardır.λ


Vay canına - bu konuda dünyanın en kalifiye kişi tarafından cevaplandı. Teşekkürler @Sam. Belki yıl sonuna kadar sana doktora başvurusu alacağım. (Ambrose BS sizinle çalışmayı dört gözle bekliyor gibi görünüyor).
Hawkeye

3
Bu konuda dünyadaki en kalifiye insandan gerçekten çok uzakım.
Sam Tobin-Hochstadt

Bağlantı kopmuş gibi görünüyor. Bunun aynı kağıt olduğuna inanıyorum: hope.simons-rock.edu/~pshields/cs/cmpt312/cardone-hindley.pdf
bmaddy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.