“Nihayet Lambda” deyiminin kökeni ve anlamı nedir?


43

Birkaç yıldır işlevsel programlama dilleriyle uğraşıyorum ve bu ifadeyle karşılaşmaya devam ediyorum. Örneğin, “Blog’u kesinlikle bu isimle yücelten The Little Schemer”. (Hayır, bu bölüm sorumu cevaplamıyor.)

Lambda'nın ne anlama geldiğini anlıyorum, adsız bir işlev fikri hem basit hem de güçlüdür, ancak bu bağlamda "nihai" ifadenin ne anlama geldiğini anlayamıyorum.

Bu ifadeyi gördüğüm yerler:

  1. Küçük Şarlatan'ın 8. Bölümünün Başlığı
  2. Bir blog: http://lambda-the-ultimate.org/
  3. Bir dizi "Son X Lambda" makalesi: http://library.readscheme.org/page1.html

Bir referansı kaçırdığımı hissediyorum, herhangi biri yardım edebilir mi?


1
Popüler bir blogun adı gibi görünüyor, ancak başka bir tarihi kaynak varsa, ben ilgilenirim ...
Klaim

1
Bu cümleyi gördüğünüz yerlere referans verebilir misiniz? Bu bağlam cevap bulmakta oldukça yardımcı olacaktır.
Adam Crossland

@Adam - bazı referanslar ekledi.
Eric Wilson

Belgeler serisi linki cultureua.com'a yönlendirir Birisi lütfen güncellenmiş link verebilir mi?
tejasbubane

Yanıtlar:


47

Evet, sadece Sussman ve Steele programlama için lambda hesap kullanımını göstermek hangi 70'li yıllarda birkaç başlayarak birkaç kağıtları, başlığında bir yinelenen sözcük "adlı bir minimalist Lisp lehçesi vasıtasıyla Şema onlar için icat" amaç. Kağıtları burada bulabilirsiniz ; ilginç ve şaşırtıcı bir şekilde alakalılar.

Bunun açık bir şekilde ifade edilip edilmediğinden emin değilim, ancak (bağlamdan, makaleleri okumak ve yazarların genel arka planını ve araştırma çıkarlarını bilmek) açık bir ifadenin lambda soyutlamalarının çekiciliği için çekici bir slogan olduğu açıktır. Hesaplamalı bir ilkel olarak, yalnızca biçimsel anlamda evrensel değildir (bazı programları herhangi bir şekilde kodlayabilir, ancak gariptir) ama pratik anlamda evrensel olarak , herhangi bir yapının ve diğer dillerde mevcut olanların bile sıfırdan içeri yerleştirilmiş, lambda esaslı bir dilde, kullanımı hem etkili hem de doğal şekilde yeniden uygulanabilir.

Tekrarlanan cümle, "Tüm X için lambda nihai X'dur" şeklindeki genelleştirilmiş forma yol açar; bu, LtU’nun programlama diliyle ilgilendiğini belirten, genellikle "Üstün Lambda" yı blog adı olarak kabul ediyorum. tasarım ve teori. İronik olarak, LtU muhtemelen size lambda'nın nihai uygulama olmadığı bir şey hakkında söyleyebilecek birini bulmak için en iyi yerlerden biri olacaktır . :]

Ayrıca Sussman'ın, Scheme dilini de kullanan ve lambda soyutlamalarını bir konsept olarak tanıtmak için oldukça fazla zaman harcayan çok etkili bir ders kitabı olan SICP'nin yazarlarından biri olduğuna dikkat edin .


2
Bu klasik makaleleri bulmak için +1. Guy L. Steele, Jr. da Common LISP kitabını yazdı . LISP ve Scheme J , Fortress ve diğer dillere katkıda bulunan Guy için yolun sonu değildi . Guy aynı zamanda Jargon Dosya ve Hacker'in Sözlüğüne dahil oldu .
John Tobler 12:11

@John Tobler: Oldukça öyleyse! Sadece Sussman'a odaklandım, çünkü Lambda Kağıtlarına derinden bağlı olan Scheme ile daha fazla ilgisi varmış gibi görünüyordu. Steele'in başka hiçbir şey yapmadığı izlenimini vermek istememiştim, çünkü bu doğru değil. :]
CA McCann

28

Lambda The Ultimate, lambda-calculus'un lambdalarının her yerleşik kavramı her programlama dilinde, geçmiş, şimdi ve gelecekte etkili bir şekilde uygulayabileceği fikrini ifade eder . Sınıflar, Modüller, Paketler, Nesneler, Metotlar, Kontrol-Akış, Veri Yapıları, Makrolar, Süreklilikler, Coutinler, Jeneratörler, Liste Kavramaları, Akışlar vb.

Olduğu gibi, bu nihai doğa bir Anonim İşlevi için ayakta durmayı da içerir . Ancak lambdalar özünde sadece isimsiz işlevlerle sınırlı değildir. Bu şekilde öğretilirler, ancak lambda'nın özü isimleri olmayan matematiksel işlevlerden çok daha derindir. Başka bir deyişle, şu konu ile ilgileniyorum:

Lambda'nın ne anlama geldiğini anlıyorum, adsız bir işlev fikri hem basit hem de güçlüdür, ancak bu bağlamda "nihai" ifadenin ne anlama geldiğini anlayamıyorum.

Pratik bir mesele olarak, lambdaların değer çağrısı / uygulayıcı olmayan (ki bu matematiksel fonksiyonlar) sözdizimsel soyutlamalar ('makrolar') olarak kullanılması, lambdaların gerçekten de, Her programlama dili işleme sisteminin özü.

Teori için: Bertrand Russell'ın paradoksuyla ve naif küme teorisinde Anlama Aksiyomları (ve Uzatma) ile ilginç bir bağlantı var. Bir lambda, set-kurucu notasyonunun set yapacağı şeyi işler: lambdalar, fonksiyon-kurucu notasyonudır. Genellikle göz ardı edilen (lambda (x) (* xx)) ile neyin değerlendirildiği (kareler arasındaki işlev) arasında önemli bir fark vardır. Eğer biri genel olarak ikisini ayırt etmeyi başaramazsa, yani notasyon ile cümle arasında (Kilise ve Frege'nin her ikisinin de yaptığı bir hata), o zaman biri paradokslara karşı geliyor. Kümeler ve Frege için, hatayı gösteren Bertrand Russell'ın Seville Berberi; Fonksiyonlar ve Kilise için, Alan Turing'in Oracle Halting'i.

Paradoksların iyi, pratik şeyler olduğuna dikkat edin. EVAL'ın açıklanmasını istiyoruz ve lambdaların sadece işlevlerden daha fazlasını ifade etmesini istiyoruz. Bunun zıtlığın yol açtığını varsaymak, istenen sonuçtur; güzel bir akıl sağlığı testi olarak kullanılır: lambdalar yalnızca yalnızca işlevleri ifade ederlerse en üst düzeyde olabilirler.


Raket (eski adıyla PLT Şeması) pratik programlama dillerinin gerçekten sıfırdan başlayarak 'sadece lambda' üzerine kurulabileceği fikrini savunmaya devam ediyor.

Çekirdek , Shutt tarafından, lambda'nın gerçekten nihai bir soyutlama olmadığını savunuyor. Sussman'a FEXPR olarak bilinen hala daha ilkel bir kavram olduğunu (Yunanca, dublajlı vau için) olduğunu savunuyor.

Felleisin ve şirket (Raket için) , kaynak kodunu birden fazla çeviri aşaması boyunca çalıştırmak anlamına gelen (C'nin ön işlemesinde olduğu gibi, ancak her biri aynı dili kullanarak), Shutt'ın vau gücünün büyük bölümünü fazlar veya metal düzeylerini kullanarak elde eder. 'adım' ve 'adımlar' aslında zaman içinde tamamen farklı değildir). (Yani, daha yüksek bir evrede bir lambranın yeterince iyi bir değere yaklaştığını iddia ediyorlar.) Aslında, fazların FEXPR'lerden daha iyi olduğunu, tam olarak daha sınırlı oldukları için savunuyorlar ; Kısacası, "FEXPR'ler çok güçlü" (bkz. Wutt'un Shutt'ın karşı çıktığı çalışmaları).

Brian Smith'in 3-Lisp'i, "Programlama dillerinde usule yansıtma", LISP benzeri diller teorisinin, notasyonları (semboller / dil / programlar) belirgin bir şekilde ayırt edici ifadelerden (şeyler / referanslar / değerler / sonuçlar) ayırma çizgileri boyunca titizlikle yeniden düzenlemeye çalışıyor. ). http://dspace.mit.edu/handle/1721.1/15961

Mitchell Wand'ın "FEXPR'lerin Teorisi Önemsizdir" tabutuna (geçici?) Tabutuna daha fazla çivi gönderiyor. Kent Pittman'ın FEXPR'ler için dövme yapması (Felleisen gibi, FEXPR'lerin derlenmesini çok zorlaştırdığını iddia ediyor).

Paul Graham, "On Lisp" de güç ve uzunlukla gerçek gücün, değerlerin dönüştürücüleri (matematiksel işlevler) yerine sözdizimi dönüştürücüleri (makrolar) olarak lambdalar olduğunu savunuyor. Plotkin'in uygulamalı lambda-calculus'u geliştirmesi biraz zıtlık olarak alınabilir, çünkü Plotkin, Church'ün hesabını kendi değerine göre / uygulama altkümesiyle sınırlar. Elbette, uygulayıcı parçanın verimli bir şekilde kullanılması çok önemlidir, bu nedenle lambda kullanımı için uzmanlaşmış bir teori geliştirmek önemlidir. (Plotkin ve Graham birbirlerine karşı tartışmazlar.)

Aslında, genel olarak, Lambda'nın Nihai olduğu kavramı, verimlilik ve ifade edilebilirlik arasındaki ebedi tartışmada böyle bir bükümdür; lambda'nın ifade için en üst araç olduğu ve yeterli çalışma yapıldığında sonuçta verimlilik için de en üst araç olacağı kanıtıdır. Başka bir deyişle, istersek, programlama dillerinin geleceğini lambda hesabının pratik olarak ilgili tüm parçalarının verimli bir şekilde nasıl uygulanacağı üzerine yapılan çalışmadan başka bir şey olarak görmeyebiliriz.

Landin'in "Yeni 700 Programlama Dilleri", http://www.cs.cmu.edu/~crary/819-f09/Landin66.pdf , Lambda'nın Ultimate olduğu kavramının geliştirilmesine katkıda bulunan erişilebilir bir referanstır.


Vay. Ayakta alkışlamaya layık cevap. İzlenecek çok fazla işaretçi var.
hmijail

13

Sanırım Sussman ve Steele tarafından 1975-1980 yılları arasında yazılan bazı yazılara referans olarak geliyor:

  • Lambda: Son Emir
  • Lambda: Nihai Beyanname
  • Lambda: Son GOTO
  • LAMBDA: En Son Opcode

Bkz Wikipedia makalesi.

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.