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

  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • ShayLoss

    ShayLoss

    5 Kasım 2009
  • SRT Photoshop Tutorials

    SRT Photosho

    19 Aralık 2012