我有一些严重的问题需要完成大学项目,而且我不知道如何使用haskell。
我需要解析一个FEN-String,以便我可以使用。
import Data.Char
import Data.List.Split
startFEN = "rnbkqbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBKQBNR"
splitFENString :: String -> [String]
splitFENString = splitOn "/"
workONstring :: [String] -> [String]
workONstring = let e = splitFENString in
map (nvcls)
nvcls :: [Char] -> [Char]
nvcls [] = []
nvcls ('1':xs) = nvcls ('0':xs)
nvcls ('2':xs) = nvcls ('0':'0':xs)
nvcls ('3':xs) = nvcls ('0':'0':'0':xs)
nvcls ('4':xs) = nvcls ('0':'0':'0':'0':xs)
nvcls ('5':xs) = nvcls ('0':'0':'0':'0':'0':xs)
nvcls ('6':xs) = nvcls ('0':'0':'0':'0':'0':'0':xs)
nvcls ('7':xs) = nvcls ('0':'0':'0':'0':'0':'0':'0':xs)
nvcls ('8':xs) = nvcls ('0':'0':'0':'0':'0':'0':'0':'0':xs)
nvcls (x:xs) = x : nvcls xs
我想在列表中的每个字符串上使用nvcls
,但我不知道如何满足编译器......
答案 0 :(得分:4)
尝试像这样更改workONstring函数
workONstring :: String -> [String]
workONstring = map nvcls . splitFENString
然后你可以调用startFEN
workONstring startFEN