SORU
14 AĞUSTOS 2010, CUMARTESİ


Kaç LİSP ilkel bir makine oluşturmak için sürer? On yedi ya da beş?

Bu sitede 10 LİSP temel öğeler vardır derler. Temel öğeler: atom, quote, eq, car, cdr, cons, cond, lambda, label, apply.

http://hyperpolyglot.wikidot.com/lisp#ten-primitives

Stevey yedi (veya beş) vardır diyor:

Its part of the purity of the idea of LISP: you only need the seven (or is 
it five?) primitives to build the full machine.

http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html

İlkellerin az sayıda LİSP makinesi (LİSP kodu eval/değer fonksiyonu çalıştırabilirsiniz yani bir şey) kurmak nedir? (Ve hangileri onlar?)

(**3) olmadan yaşayabilir anlayabiliyorum

CEVAP
14 AĞUSTOS 2010, CUMARTESİ


F-fonksiyonları temel Koşullar/

McCarthy'lerS-fonksiyonları ve Koşullarına ilkokuluvardı:

  1. atom

    Araba ve cdr cevap herhangi bir tür varsa car atom verirsen neler olduğunu göstermek için üzerine saymak anlamına gelen listeler, tanımlı, çünkü gerekli olan.

  2. eq

    Atomlar arasındaki eşitliğinin testi için.

  3. car

    İlk yarısı (Adres) eksileri hücre döndürmek için. (Adresin içeriğini kaydetmek).

  4. cdr

    İkinci yarı (azaltma) eksileri hücre döndürmek için. (Eksiltme içeriği kayıt).

  5. cons

    Adres yarım eksileri ve eksiltme yarısı ikinci bağımsız değişken içeren ilk argümanı içeren yeni eksilerini bir hücre yapmak için.

Birlikte bağlama: S-Fonksiyonları

Daha sonra da onun temel gösterim için, S-fonksiyonları dediği yazabilmek için eklemek için evinden çıktı

  1. quote

    Değerlendirme olmadan bir ifade temsil edecek.

  2. cond

    Temel koşul, yukarıda açıklanan koşullar ile kullanılacak.

  3. lambda

    Bir fonksiyonu belirtmek için.

  4. label

    Özyineleme için buna ihtiyacı yoktu ama, Y-Kombinatorik (ccording to Paul Graham) olacağını bilebilir değil, kolaylık sağlamak için bunu ekledi ve kolay özyineleme etkinleştirmek için.


O aslında "" Lisp onun makine için. operatörler 9 temel tanımlanmış görebilirsiniz Sorularınızı bir önceki cevap, 22* *Bu sistem ile nasıl açıkladım.

Ama bu sorunun cevabını gerçekten Lisp otomatik istediğine bağlı. Sadece beste her şey işlevsel ve Y-Combinator uygulanması özyineleme elde olabilir gibi label işlevi olmayan bir alet.

atom atomlar NIL dönüş car işlemi tanımlı atılmış olabilir.

Aslında bu 9 tanımlanan temel öğeler 7 ile Mccarthy'nin LİSP makine olabilir, ama görünüşte daha kısa bir versiyonu ne kadar Kendin vermek istersin bağlı olarak tanımlayabilirsiniz. Onun makine çok seviyorum, ya da Clojure gibi yeni dilde pek çok ilkel.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LiquidMusick

    LiquidMusick

    23 Aralık 2010
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013
  • Truc Minh

    Truc Minh

    23 Ocak 2011