SORU
12 ŞUBAT 2011, CUMARTESİ


Nasıl Haskell bir dize bölmek için?

Haskell bir dize bölmek için standart bir yolu var mı?

lines words büyük boşluk veya yeni satır üzerinde çıtlama iş, ama kesinlikle bir virgül bölme için standart bir yolu var mı? Hoogle de fint değil mi?

Özel olmak, split "," "my,comma,separated,list" ["my","comma","separated","list"] döner nerede bir şey arıyorum

Teşekkürler.

CEVAP
12 ŞUBAT 2011, CUMARTESİ


Başlangıç fonksiyonlarının tanımına bakmak unutmayın!

http://www.haskell.org/onlinereport/standard-prelude.html

Orada, words tanımıdır

words   :: String -> [String]
words s =  case dropWhile Char.isSpace s of
                      "" -> []
                      s' -> w : words s''
                            where (w, s'') = break Char.isSpace s'

Yani, bir yüklem alır bir işlevi değiştirin:

wordsWhen     :: (Char -> Bool) -> String -> [String]
wordsWhen p s =  case dropWhile p s of
                      "" -> []
                      s' -> w : wordsWhen p s''
                            where (w, s'') = break p s'

Sonra ne istersen onu Ara!

main = print $ wordsWhen (==',') "break,this,string,at,commas"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Good Creative Academy

    Good Creativ

    19 Kasım 2009
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009
  • xdadevelopers

    xdadeveloper

    25 Aralık 2009