Wiki page for Sudoku solutions, bir çözüm "Dot Hack" kullanmak için iddia ediyor. Bağlı Github sayfası artık kullanılamıyor ve başka bir yerde bulamadım.Haskell "Nokta Hack"
Bu nedir? Bu ne işe yarıyor? Nasıl? Bu NYP tarzı kullanıyor
Wiki page for Sudoku solutions, bir çözüm "Dot Hack" kullanmak için iddia ediyor. Bağlı Github sayfası artık kullanılamıyor ve başka bir yerde bulamadım.Haskell "Nokta Hack"
Bu nedir? Bu ne işe yarıyor? Nasıl? Bu NYP tarzı kullanıyor
Onun şu hattına atıfta sanırım. Bunun yerine, muhtemelen aynı ada sahip başka bir operatör kullanılır, muhtemelen T.T
hizmet modülünden alınır. Normalde
pretty_output solution = (unlines . map unwords . in_group_of 9 . map show . elems) solution
O operatör gibi görünecektir (Sanırım)
pretty_output solution = solution.elems.map(show).in_group_of(9)
.map(unwords).unlines
F # |>
operatörü gibi aynı şekilde çalışır: Bu operatör NYP dillerinde gibi davranır
(|>) :: a -> (a -> b) -> b
x |> f = f x
numaralı boruya no'lu borulara fonksiyonlar aracılığıyla bir değer (ve daha okunaklı ve daha iyi fonksiyonel stil, imo):
pretty_output solution = solution |> elems |> map show |> in_group_of 9 |> map unwords |> unlines
(|>)
da flip ($)
aynıdır.
Düzenleme: Bu "saldırıya uğramış" operatör, bir şekilde Haskell'de zaten var. gerçi
g x = x |> (f1 >>> f2 >>> f3)
Bu borular sadece fonksiyonlar, ve aslında sadece f >>> g = g . f
: Aynı kompozisyon davranışı Control.Category
dan soldan sağa kompozisyon operatör tarafından elde edilebilir.
Ayrıca, bu iki durumu da içeren bazı sorunları ele alan [this] (http://stackoverflow.com/q/1457140/1346276) adresini okumak isteyebilirsiniz. – phg
thing.method
o programda
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
Örneğin
için bakınız yerine her zamankimethod thing
ait thing
üzerinde işlevleri çağırmak için. Fonksiyonel kompozisyon normal (.)
operatörü devre dışı bırakır
import Prelude hiding ((.))
:
.hack dizisiyle ilgili olup olmadığını merak ediyorum. – Pubby