Arc का लाभ Racket के शीर्ष पर बनाया गया है। चूंकि वे दोनों लिस्प परिवार में हैं, इसलिए मैं रैकेट के ऊपर आर्क के लाभ के बारे में उत्सुक हूं, या रैकेट उपलब्ध है कि आर्क बनाने की प्रेरणा क्या है?आर्क ओवर रैकेट
उत्तर
लेखन अपनी खुद की भाषा है, एक अर्थ में, सशक्त बनाने: आप क्या पुरातन, क्या भाव के प्रकार, उस भाषा में लिखने के लिए सुविधाजनक हैं चुनने के लिए मिलता है। इस अर्थ में, आप On Lisp जैसी पुस्तक देख सकते हैं और देख सकते हैं कि आर्क के मूल लेखकों की एक मजबूत राय है कि वे किसी भाषा से किस तरह की चीजें चाहते हैं।
अगर मैं अपने प्रश्न लेने के लिए और अनिवार्य करने के लिए इसे नीचे उबाल, यह इस तरह लगता है: क्यों लोग डोमेन विशिष्ट भाषाओं लिखना चाहिए?
(यह विचार करने के लिए एक अलग सवाल है कि आर्क लोगों को अपने स्वयं के मैक्रो और मॉड्यूल सिस्टम जैसे कई प्राचीन सुविधाओं को दोबारा लागू करना चाहिए था, जब रैकेट में पहले से ही इस तरह के तंत्र बना चुके हैं। लेकिन आर्क लेखक पूरी तरह से भीतर हैं अपने अधिकारों को फिर से आविष्कार करने के लिए)
मैं आपत्तियों मैं आर्क करने के लिए है में से एक अनुमान यह है:। जिस तरह से वे आधिकारिक क्रम को क्रियान्वित किया है यह मुश्किल काम वे वापस सादे रैकेट को किया है पुन: उपयोग करने में आता है। इस अर्थ में, यह प्रयास है जो केवल एक समुदाय की सहायता करता है, जबकि आर्क लोगों के काम से आसानी से लाभ उठाने में सक्षम होना अच्छा होता।
रैकेट एक योजना बोली है जबकि आर्क नहीं है। हालांकि वे दोनों LISP बोलियां हैं। आर्क कोष्ठक की मात्रा कम कर देता है और कोड आकार में सामान्य सामान को कम करने के लिए वाक्यविन्यास में निर्मित कुछ फैंसी है। उदाहरण:
;; scheme
(if p1 c1
(if p2 c2
(if p3 c3 a3)))
;; arc simplifies if
(if p1 c1
p2 c2
p3 c3
a3)
;; scheme
(f1(f2(f3 a b)))
;; arc simplifies cascading calls
(f1:f2:f3 a b)
;; scheme
(lambda (x) (+ x x))
;; arc simplified one argument anonymous functions
[+ _ _ ]
;; scheme array access
(vector-ref v1 5)
;; arc simplifies array access
(v1 5)
आप एक दूसरे को चुन सकते हैं। व्यक्तिगत रूप से मुझे आर्क सिंटैक्स पसंद है लेकिन यह तथ्य नहीं है कि इसे एक दुभाषिया के रूप में लागू किया गया है। काश है कि उन्होंने आर्क को रैकेट मॉड्यूल भाषा के रूप में लागू किया था, तब से आप वास्तव में ड्रैकेट, डीबग और निष्पादन योग्य बना सकते हैं। यह आर्क में या इसके विपरीत रैकेट पुस्तकालय बनाने की अनुमति भी दे सकता है।
यदि आप संगत कोड बनाना चाहते हैं तो आपको अधिक सख्त होना चाहिए और रैकेट डिफ़ॉल्ट भाषा या चाप का उपयोग करने से R6RS/R5RS का उपयोग करना चाहिए, तब से आपके पास कोड हो सकता है जिसे आप रैकेट से अधिक पर चला सकते हैं। रैकेट में आप R5RS चुन सकते हैं या मानक को मजबूर करने के लिए कोड में पहली पंक्ति के रूप में #! R6RS का उपयोग कर सकते हैं। दोनों मामलों में परिणाम अन्य कार्यान्वयन/कंपाइलरों के तहत चलाने में सक्षम हो जाएगा।
मैं रैकेट के लिए उस पहले मामले के लिए कंड के बारे में कुछ कहूंगा। '(कंड (पी 1 सी 1) (पी 2 सी 2) (पी 3 सी 3) (# टी सी 4)) 'थोड़ा अधिक तुलनात्मक तुलना है। –
- 1. आर्क
- 2. रैकेट
- 3. रैकेट
- 4. रैकेट
- 5. रैकेट
- 6. रैकेट
- 7. रैकेट
- 8. रैकेट
- 9. रैकेट
- 10. रैकेट
- 11. डॉ रैकेट
- 12. रैकेट अनुबंध
- 13. कैनवास आर्क() बनाम drawImage()
- 14. एन-आयामी आर्क पथ
- 15. यूआईएलएबल ओवर यूआईस्लाइडर थंब
- 16. कस्टम UIView वॉयस ओवर
- 17. रैंक ओवर विभाजन
- 18. IQueryable ओवर डब्ल्यूसीएफ सेवा
- 19. छोड़ें-ओवर/डालने
- 20. पायथन से रैकेट (नियमित अभिव्यक्ति पुस्तकालयों और "रैकेट वे") से
- 21. आर्क में टच बिंदु CGContext
- 22. एंड्रॉइड - एक आर्क आधारित ग्रेडियेंट
- 23. कॉमनक्रिप्टो आर्क आर्मव 7 आईओएस
- 24. रैकेट में गेम प्रोग्रामिंग
- 25. रैकेट: एक फ्रेम% खिड़की
- 26. रैकेट रीडर मैक्रोज़
- 27. प्रोग्रामिंग स्कीम (रैकेट) -
- 28. रैकेट यूआरएल प्रेषण
- 29. योजना (रैकेट) - लूप पुस्तकालय
- 30. रैकेट स्क्रिबल/एलपी
पायथन "सी के शीर्ष पर" बनाया गया है, तो सी पर पायथन का क्या फायदा है? अंतर्निहित भाषा, जब तक यह खुलासा न हो, "शीर्ष स्तर" की शक्ति के लिए कम प्रासंगिकता है। – drysdam
मुझे संदेह है कि कोई भी योजना है - योजनाएं चीजों को करने के लिए पुस्तकालयों के साथ एक प्रसिद्ध, काफी लोकप्रिय भाषा है, जबकि आर्क एक ऐसे व्यक्ति से वैनिटी प्रोजेक्ट है जिसने प्रारंभिक वेब स्टोर बनाया है। – Marcin
ऐसा लगता है कि एक पूरी तरह से अलग भाषा के साथ एक डीएसएल की तुलना करने के लिए मूर्खतापूर्ण लगता है। उदाहरण के लिए, मैं "लिफ्टवेब * या * स्कैला" या "समुद्रतट * या * स्मॉलटाक" या "सिनात्रा * या * रूबी" नहीं कहूंगा। (अनुमोदित लिस्प फॉर्म वास्तव में भेद को धुंधला कर सकते हैं।) –