i Haskell acemi değilim ve ben sorum var: yazıyorum kod:haskell ve dize uzunluğu
word_list = ["list", "lol", "wordword"]
check str = if head str == 'l' then tail str else str
average wl = (length $ concat $ map check wl) `div` length wl
kelime listesindeki her kelimenin ilk "l" sembolü silmelisiniz bu kod, concat alınan kelimeler , kelime sayısı üzerinde sonuç dizesi ve div uzunluğunu alın. (= 13 "istolwordword", "listlolwordword" = 15) 13/3 = 4.333 ... ama ben sadece 4.
average :: [[Char]] -> Float
çalışmaz alma:
vay. Size çok teşekkür ederim! Desen eşleştirme hakkında : şaşırtıcı! Her gün hasskel'i daha çok seviyorum :) –
@user: Ayrıca concatMap olduğunu unutmayın, böylece "concat $ map" yapmak zorunda değilsiniz. –
ve ben daha açık bir yaklaşım muhtemelen 'toplam $ harita (uzunluk. Kontrol edin) wl' olduğunu (fusion muhtemelen bu önemsiz hale getirir) – alternative