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

  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • DragsterMC Gaming

    DragsterMC G

    30 HAZİRAN 2013
  • GavinMichaelBooth

    GavinMichael

    26 AĞUSTOS 2006