ne Haskell'yok s &;|> lt operatör?
Neler yaşadığını haskell belgelerine her zaman biraz acı bana, çünkü tüm bilgi almak hakkında bir fonksiyon genellikle bir şey daha: f a -> f [a]
bunun anlamı, herhangi bir sayıda olan şey.
<|>
işlevi böyledir.
Verilen tüm istediğim bu: (<|>) :: f a -> f a -> f a
ve işte bu kadar< . em^"" . çağrışımlı ikili işlem ...
Control.Applicative
incelemeye göre görünüşte ilgisiz şeyler uygulanmasına bağlı olarak yaptığı öğrenin.
instance Alternative Maybe where
empty = Nothing
Nothing <|> r = r
l <|> _ = l
Tamam, döner sağ olmazsa sol, aksi halde döner sol, anladım.. Bu yol bana inan bu bir "sol veya sağ" operatör, biraz mantıklı düşünüldüğünde kullanımı |
|
'nın tarihsel olarak kullanmak "VEYA"
instance Alternative [] where
empty = []
(<|>) = ( )
Sadece liste birleştirme operatör aramaları hariç... benim fikrim parçalayarak...
Tam olarak işlevi nedir? Onun ne faydası var? Nereye şeylerin büyük düzeni sığacak mı?
CEVAP
Genellikle bunun anlamı, "seçim" ya da "paralel" a <|> b
ya da bir "seçim" a
b
a
b
yapılan paralel. Ama başa dönelim.
Gerçekten, (<*>)
(<|>)
gibi typeclasses işlemleri için pratik bir anlamı yok. Bu işlemler iki şekilde anlam verilmiştir: (1) kanun ve (2) örneklemesi yoluyla. Bir söz etmiyoruzözellikleAlternative
örnek sonra sadece (1) Bölüm I, sezgi anlam için kullanılabilir.
"Çağrışımsal" a <|> (b <|> c)
(a <|> b) <|> c
olarak aynı olduğu anlamına gelir. Bu sadece hakkında bakım anlamına gelir olarak yararlıdırsırabirlikte bir şeyler (<|>)
, onların değil zincirleme". ağaç yapısı
Diğer kanunların empty
ile kimliği vardır. Özellikle, a <|> empty = empty <|> a = a
. Bizim sezgi "seçim" ya da "" bu yasalar olarak okuma "ya (imkansız bir şey) olmalı" ya da "yanında (boş işlem) sadece bir" paralel ile empty
"mod" Alternative
. bir arızası falan mı gösterir
Başka kanunlara nasıl (<|>)
/empty
etkileÅŸim ile fmap
(Functor
) veya pure
/(<*>)
(Applicative
), ama belki de en iyi şekilde geleceğe anlama anlamı (<|>)
incelemek için bir çok yaygın bir örnek, bir tür oluşturur Alternative
Parser
.
x :: Parser A
y :: Parser B
(,) <$> x <*> y :: Parser (A, B)
x
ayrıştırırve sonraSırayla y
. , (fmap Left x) <|> (fmap Right y)
ayrıştırır aksineyax
y
iki Olası çözümler denemek için x
ile başlıyor. Diğer bir deyişle, bir gösterirşubeeğer ayrıştırma ağacı, bir seçim, ya da ayrıştırma paralel bir evren.
'in Haskell ($) sihirli bir opera...
Haskell içinde Haskell bir yorumlayıcı...
Nasıl hala runhaskell/ile çalışan kütü...
Galatasaray' operatör olarak ...
Haskell durumlarda korumalar vs. vs.-s...