我想在Haskell中將某個字符串拆分爲某個字符和某個列表中的某個數字。用字符或int拆分字符串/列表
爲了做到這一點,splitAt函數正是我需要的數字,但我不能給這個函數的字符。
E.g.
splitAt 5 [1,2,3,4,5,6,7,8,9,10]
給
([1,2,3,4,5],[6,7,8,9,10])
是execlty我在元組的左側與所需的5。 但現在我想用char和一個字符串來做到這一點。但splitAt只接受和int爲第二個參數。我想
splitAt 'c' "abcde"
導致
("abc", "de")
我找的東西在
splitAt (findIndex 'c' "abcde") "abcde"
方向,但findIndex返回類型的東西的功能也許INT和splitAt需要一個詮釋。然後我嘗試以下
splitAt (head (findIndices (== 'c') "abcde")) "abcde"
這是一個可能的解決方案,但它的元組的錯誤一邊的C返回以下
("ab","cde")
。您可以添加SUCC到c但結果是什麼,如果炭是Z ..
有一種簡單的方法來修改,使
splitAt (findIndex 'c' "abcde") "abcde"
工作?
謝謝!
如果您使用['break'](http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:break)'::(a - > Bool) - > [a] - >([a],[a])'而不是'splitAt',則不需要'findIndex'。 –
@SebastianPaaskeTørholm,但你在右邊而不是在左邊得到'c'。 – AndrewC