Wiki page for Sudoku solutions में, एक समाधान "डॉट हैक" का उपयोग करने का दावा करता है। लिंक किए गए गिथब पेज अब और उपलब्ध नहीं हैं और मुझे इसके बारे में कुछ भी नहीं मिला।हास्केल "डॉट हैक"
इसके बारे में क्या है? यह क्या करता है? कैसे?
Wiki page for Sudoku solutions में, एक समाधान "डॉट हैक" का उपयोग करने का दावा करता है। लिंक किए गए गिथब पेज अब और उपलब्ध नहीं हैं और मुझे इसके बारे में कुछ भी नहीं मिला।हास्केल "डॉट हैक"
इसके बारे में क्या है? यह क्या करता है? कैसे?
मुझे लगता है कि वह निम्न पंक्ति की चर्चा करते हुए है:
import Prelude hiding ((.))
जो कार्यात्मक रचना के लिए सामान्य (.)
ऑपरेटर अक्षम करता है। इसके बजाए, एक ही नाम के साथ एक और ऑपरेटर का उपयोग किया जाता है, शायद उपयोगिता मॉड्यूल T.T
से आयात किया जाता है। इस ऑपरेटर OOP भाषाओं में तरह बर्ताव करता है:
pretty_output solution = solution.elems.map(show).in_group_of(9)
.map(unwords).unlines
जो (मुझे लगता है कि) आम तौर पर
pretty_output solution = (unlines . map unwords . in_group_of 9 . map show . elems) solution
कि ऑपरेटर कैसा दिखेगा एफ # में |>
ऑपरेटर की तरह ही काम करता है:
(|>) :: a -> (a -> b) -> b
x |> f = f x
जिसका उपयोग पाइप कार्यों के माध्यम से एक मूल्य (और अधिक पठनीय और बेहतर कार्यात्मक शैली, आईएमओ) के लिए किया जाता है:
pretty_output solution = solution |> elems |> map show |> in_group_of 9 |> map unwords |> unlines
(|>)
भी flip ($)
जैसा ही है।
संपादित करें: यह "हैक" ऑपरेटर पहले से ही हास्केल में मौजूद है। एक ही रचना व्यवहार Control.Category
से बाएँ से सही रचना ऑपरेटर के द्वारा प्राप्त किया जा सकता है: केवल
g x = x |> (f1 >>> f2 >>> f3)
यह पाइप काम करता है, हालांकि, और वास्तव में सिर्फ f >>> g = g . f
है।
आप दोनों संस्करणों के साथ कुछ मुद्दों का इलाज करते हुए [यह] (http://stackoverflow.com/q/1457140/1346276) पढ़ना भी पसंद कर सकते हैं। – phg
यह OOP शैली उपयोग कर रहा है
thing.method
सामान्य
method thing
के बजाय thing
पर कार्यों कॉल करने के लिए उदाहरण
row i = i `div` 9
col i = i `mod` 9
row_list i positions = positions.select(on_i_row) where
on_i_row pos = pos.row == i.row
col_list i positions = positions.select(on_i_col) where
on_i_col pos = pos.col == i.col
कि इस कार्यक्रम में
के लिए देखें।
मुझे आश्चर्य है कि यह .hack श्रृंखला से संबंधित है या नहीं। – Pubby