मैं एक शिक्षण अनुभव के रूप में रैकेट को Python स्क्रिप्ट पोर्टिंग कर रहा हूँ, और मैं इस समारोह है:मैं यह रैकेट कोड DRYER कैसे बनाऊंगा?
(define (check-status)
(define git [find-executable-path "git"])
(define-values (ckot out in err)
(subprocess #f #f #f git "checkout" "-q" "master"))
(define-values (local lout lin lerr)
(subprocess #f #f #f git "rev-parse" "@"))
(define-values (remote rout rin rerr)
(subprocess #f #f #f git "rev-parse" "@{u}"))
(define-values (merge-base mbout mbin mberr)
(subprocess #f #f #f git "merge-base" "@" "@{u}"))
(display-lines (port->lines mbout))
(define ports '(ckot out in err local lout lin lerr remote rout rin rerr merge-base mbout mbin mberr))
(map (lambda (x)
(cond ((input-port? x) (close-input-port x))
((output-port? x) (close-output-port x)))) ports))
समस्या यह है कि यह बहुत ही सूखी नहीं है।
(define (check-status)
(define commands '(
'("checkout" "-q" "master")
'("rev-parse" "@")
'("rev-parse" "@{u}")
'("merge-base" "@" "@{u}"))
(map currently-immaginary-git-command-fn commands))
: जब से मैं एक लिस्प उपयोग कर रहा हूँ, और लिस्प पागल काम करने के लिए सक्षम होने के लिए जाना जाता है, मैं वहाँ सब उपप्रक्रिया कोड ले और उसे निकालने के तो मैं क्या कर सकते हैं की तरह कुछ करने के लिए एक तरीका है जानना चाहता हूँ
और आदेशों की सूची में प्रत्येक कमांड के आउटपुट की एक सूची के साथ समाप्त होता है। यह मैं कैसे करूंगा? चूंकि मैं पूरी लिस्प/स्कीम चीज में नया हूं, इसलिए मैं सिंटैक्स को समझ रहा हूं क्योंकि मैं जाता हूं और मुझे उपलब्ध संसाधनों से पूरी तरह से अवगत नहीं है।
यह [स्टैक एक्सचेंज कोड रिव्यू] (https://codereview.stackexchange.com/) के लिए एक अच्छा सवाल होगा। –
यह पहले से ही एक स्वीकार्य उत्तर है, हालांकि @ जोनाथन को अपना कामकाजी कोड लेने और कोड समीक्षा पर पोस्ट करने के लिए आपका स्वागत है, अगर वह चाहता है कि यह – Phrancis
बीटीडब्लू की समीक्षा करे, तो पोर्ट-क्लोजिंग कोड काम नहीं करेगा: '' (बाहर निकलना। ..) 'प्रतीकों की एक सूची है; यह '(सूची 'ckot' out 'में समान है ...)'। आप इसके बजाय '(सूची ckot बाहर ...) 'चाहते हैं। –