में हैकेल में फ़ंक्शंस की सूची को Encapsulating किसी ने कहा कि हो सकता है कि मैं होस्केल में उचित कोड कैसे "प्राप्त" नहीं हो सकता। यही कारण है कि किसी को पूरी तरह से सही होना चाहिए, के रूप में मैं अपने सभी Haskell कोड लग रहा है, लेकिन सरल कार्यों वास्तव में बदसूरत है (कम से कम इस तरह के जावा या सी के रूप में एक "मानक" भाषा में मेरी OOP कोड ++ की तुलना में):एक ही
mev = matrixExpValues 5 4 3
cs = canonicalSt 4 3
cs_t1 = map (foldl (++) "") (map (map show) cs)
cs_t2 = map (++ ":") cs_t1
mev_t1 = intXxsToStringXxs mev
mev_t2 = map (map (++ "\t")) mev_t1
mev_t3 = map (foldl (++) "") mev_t2
res1 = zipWith (++) (map (++ "\t") cs_t2) mev_t3
res2 = map (++ "\n") res1
final_result = foldl (++) "" res2
साथ mev
और की cs
:
*Main> mev
[[2,-2,-2,-6],[4,2,0,-2],[2,2,4,4],[6,4,2,2],[6,4,2,6]]
*Main> cs
[[0,0,4],[0,1,3],[0,2,2],[1,1,2]]
(! उन मूल्यों को हाथ से लिखे गए थे, मैं मनमाना mev
और cs
के लिए काम करने के लिए इस की आवश्यकता होगी) मैं शुरू में एक 2 डी मैट्रिक्स है जो मैं आपरेशन के एक दृश्य के लिए लागू किया है, जब तक मुझे मिल गया वांछित परिणाम।
यह काम करता है, लेकिन अब मैं एक ही फ़ंक्शन में इस तर्क को समाहित करना चाहता हूं (चलो इसे matrix_transf
पर कॉल करें)। वर्तमान कोड क्या matrixExpValues
और canonicalSt
वापसी से जुड़ा हुआ है, और मैं की तरह
matrix_transf mev cs =
...all those transformations
...until I get to final_result
आलोचना के सभी प्रकार का स्वागत है (मैं इसे की जरूरत है तो मैं सुधार कर सकते हैं!) मेरा मानना है कि अच्छा हास्केल कोडर होगा कुछ करना चाहते हैं शायद इसे पूरी तरह से अलग तरीके से देखें और यही वह है जिसे मैं जानना चाहता हूं!