2011-01-03 13 views
11

संभव डुप्लिकेट:
How many primitives does it take to build a LISP machine? Ten, seven or five?सबसे कम LISP?

मैं उत्सुक हूँ। सबसे कम न्यूनतम LISP क्या है, जिस पर सभी और सुविधाएं बनाई जा सकती हैं? दक्षता को अनदेखा करें - सवाल केवल लालित्य की जगह से आता है।

यदि आप किसी विदेशी ग्रह पर जागते हैं और उन्हें सबसे कम न्यूनतम LISP बनाने का निर्देश दिया गया है जिसे आप बाद में किसी भी सुविधा को लागू करने के लिए तैयार कर सकते हैं, तो आप क्या शामिल करेंगे?

संपादित करें: स्पष्टीकरण। मेरा इरादा यहां बहस शुरू नहीं करना है, बल्कि मैं कम से कम एलआईएसपी लागू करने पर विचार कर रहा हूं और मैं समझना चाहता हूं कि मैं जिस भाषा को लागू कर रहा हूं, वह अभी भी ट्यूरिंग पूर्ण होने की अनुमति देने के दौरान कितनी कम हो सकती है, आदि। यदि यह विवादास्पद साबित होता है I मुझे यकीन है कि मैं सीखूंगा कि मैं विवाद को देखने से क्या सीखना चाहता हूं। :)। धन्यवाद!

+0

यह व्यक्तिपरक कैसे है? यह एक डुप्लिकेट हो सकता है (मुझे लगता है कि मैंने एक बार एक ही सवाल देखा है, अब खोज करेगा)। – delnan

+1

इसे मिला: [LISP मशीन बनाने के लिए कितने प्राइमेटिव लेते हैं? दस, सात या पांच?] (Http://stackoverflow.com/questions/3482389/how-many-primitives-does-it-take-to-build-a-lisp-machine-ten-seven-or-five) (इसके अलावा एक अन्य प्रश्न का एक लिंक है जो इस विषय को भी छूता है)। – delnan

+0

क्या आप भाषा को पूरा करने के लिए न्यूनतम संख्या में संचालन करना चाहते हैं या पाए गए सभी भाषा सुविधाओं को परिभाषित करने में सक्षम होना चाहते हैं। सामान्य लिस्प में? – sepp2k

उत्तर

4

पीटर नॉर्विग ने पाइथन की 90 लाइनों में एक एलआईएसपी दुभाषिया लागू किया, और उसके बाद के लेख में विस्तार से चर्चा की गई है कि आप क्या पूछ रहे हैं। पढ़ने के लायक, आईएमएचओ।

http://norvig.com/lispy.html

मुझे लगता है मिल गया है कि "उनका अनुक्रमण" विशेष रूप यदि केवल फ़ंक्शन कॉल मापदंडों के एक मनमाना संख्या ले सकता है गिरा दिया जा सकता है।

(defun last (lst) 
    (if (cdr lst) 
     (last (cdr lst)) 
     (car lst))) 

(defun begin (:rest y) (last y)) 

लेकिन यह फ़ंक्शन एप्लिकेशन को जटिल करेगा।

संबंधित मुद्दे