SORU
3 EYLÜL 2012, PAZARTESİ


Nasıl Lisp's-eval-baskı döngü okumak Python daha farklı'ler mi?

statement by Richard Stallman aşağıdaki bir karşılaşma.

Lisp sistemi ne zaman başladın, okuma-eval-baskı döngü girer. Çoğu diğer dillerde hiçbir şey okumak, hiçbir şey eval, ve hiçbir şey yazdırmak için karşılaştırılabilir karşılaştırılabilir karşılaştırılabilir. Ne şaşkın eksiklikleri! '

Şimdi, Lisp çok az programlama yaptım, ama Python Kodu ve Ayrık biraz son zamanlarda önemli miktarda yazıp bitirdim. Benim izlenimim bu dilde de okuma-eval-baskı döngü teklif edildi, ama aynı fikirde değil (en azından Python) Stallman:

'İnsanlar Lisp için temelde benzer olduğunu söyledi sonra Python belgelerine göz gezdirdim. Benim sonuç bu kadar değildir. Lisp başlattığınızda, değil mi '',', 'print' Python eksik.' tüm eval 'okumak

Gerçekten Lisp ve Python okuma-eval-baskı döngü arasındaki temel teknik bir fark var mı? Lisp ÇOĞALTMA kolaylaştırır ve bunu Python ile yapmak zor şeylere örnekler verebilir misiniz?

CEVAP
3 EYLÜL 2012, PAZARTESİ


Stallman konumunu desteklemek için, Python aşağıdaki alanlarda tipik Lisp sistemleri ile aynı şey değildir:

  • Lisp read işlev ya da veri veya kod olarak değerlendirilmesi olarak kabul edilebilir bir rasgele bir veri yapısını temsil eden bir S-ifadesi, okur. Python en yakın şey eğer bir şey söylemek istiyorsan kendini ayrıştırmak zorunda olan tek bir dize okur.

  • Lisp eval Bu işlev, herhangi bir Lisp kod çalıştırmak için kullanılabilir. Python eval işlevi değerlendirirsadeceifadeler ve exec ifadeleri çalıştırmak için açıklama ihtiyacı var. Ama bu iki Python kaynak kodu metin olarak temsil ve çemberler bir sürü üzerinden atlamak zorunda "eval" bir Python AST.

  • Lisp print işlevi read kabul eden aynı şekli ile bir S-ifadesi yazar. Python print bir şey kesinlikle her zaman geri dönüşümü olmayan baskı yapmaya çalıştığını verileri ile tanımlanan yazdırır.

Stallman açıklaması biraz samimiyetsiz, açıkça Python olmasıdıryokfonksiyonları tam olarak adlandırılmış eval print, ama farklı bir şey (ve) alt beklediğini ne için yapıyorlar.

Bence Pythonyokbazı yönleri Lisp vardır, tıpkı insanlar Python içine Stallman bak tavsiye olabilir anlayabiliyorum. Paul Graham argues in What Made Lisp Different, Lisp tüm özelliklerini içeren herhangi bir programlama dili gerektiği gibi ancak, aynı zamandaolabilirLisp.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FrameCityJackal

    FrameCityJac

    4 Aralık 2010
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008
  • Top Gear

    Top Gear

    27 Mart 2006