2010-02-27 22 views
8

'da ne anlama geliyor? Ben Happstack için Guestbook example okuyordum ve daha önce görmediğim ders kitaplarında daha önce görmediğim >> sembolünü fark ettim (örneğin hat 23'e bakın). Bu ne?>> sembolü Haskell

Google'da bulamadım çünkü bu, >> tamamen yok sayar (Bing, ancak bunlarla ilgili olmayan sonuçlarla birlikte gelir). buna ilk birinden sonucu gözardı etmesi dışında iki eylem dizileri ki http://holumbus.fh-wedel.de/hayoo/hayoo.html

(>>), (>>=) gibidir:

+2

hoogle (ve hayoo eşdeğerdir haskell sözdizimini kullanarak arama http://www.haskell.org/hoogle/?hoogle=%3E%3E – Keith

+0

Ayrıca Google da var Bu gibi durumlar için en iyisi olmasa da, genellikle böyle durumlar için iyi olan Kod Arama: http://google.com/codesearch?q=lang%3Ahaskell+%3E%3E&hl=tr&btnG=Search+Code – MatrixFrog

cevap

10

yazabilirsiniz Oradan

class Monad m where 
... 
(>>) :: m a -> m b -> m b 
... 
     -- Defined in GHC.Base 
infixl 1 >> 

, sadece daha fazla bilgi edinmek için kaynak koduna bir göz atabilirsiniz .

Ve sadece soruya cevap uğruna:

k >> f = k >>= \_ -> f 
+1

Şimdi aptal hissediyorum; Ben: (bilgi) komutu hakkında biliyorum ama Java ve PHP'den geliyorum ve hala her şey için REPL'yi kullanmaya alıyorum. Teşekkürler – CharlesS

+5

Doğru ama bir Haskell acemi için çok yararlı. Neden var? Ne için yararlıdır? 0. –

+1

Bu, nerede arama yapacağımı bulmak için yeterli; Daha önce hiç fikrim yoktu. – CharlesS

14

Hayoo operatörü bu tür tanır.

:info >> 

Ve böyle bir sonuç almak:

GHCi komut isteminde
+0

Neden downvote? –

+0

Bu bağlantı için teşekkürler! Çok kullanışlı. Oyla. – CharlesS

+1

Nihai yumruk dövüş şampiyonluğu dukeoutu: Hoogle vs. Hayoo! –

1

hiçbir Haskell uzman değilim, ama >> birçok arasında ki (alışılmadık bir özelliktir monads, çalışmak için kullanılan bir operatörüdür Diğer şeyler) Haskell'de emir-stil programlamayı mümkün kılar. Monadlarda mevcut birçok ders var; here's one good one.

Esasen, a >> b "a sonra b yapmak ve b sonucunu döndürür etmeyin" gibi okunabilir. Daha yaygın olan bağlayıcı operatörüne benzer. >>=. do-gösterimde

+6

"Anlaması zor olan şeyler" ile cevap vermek açıklığa kavuşmuyor. Başarısızlık için okuyucuyu ayarlar, bence. –

+0

Yeterince adil. Artık "anlaşılması zor şeyler" olmak yerine "sıradışı bir özellik" konumundalar. –

+0

Bir işlevi çağırmak ve sonucu başka bir işleve iletmek "olağandışı bir özellik"? Tamam ... – jrockway

8

a >> b >> c >> d 

do a 
    b 
    c 
    d 

eşdeğerdir (ve benzer şekilde a >>= (b >>= (c >>= d)) için en iyi yol olan) aşağıda belirtilen

do r1 <- a 
    r2 <- b r1 
    r3 <- c r2 
    d r3 
İlgili konular