initials :: String -> String -> String
initials firstname lastname = [f] ++ ". " ++ [l] ++ "."
where (f:_) = firstname
(l:_) = lastname
對於此代碼。我得到錯誤解析錯誤輸入'='
parse error on input `='
爲什麼?
initials :: String -> String -> String
initials firstname lastname = [f] ++ ". " ++ [l] ++ "."
where (f:_) = firstname
(l:_) = lastname
對於此代碼。我得到錯誤解析錯誤輸入'='
parse error on input `='
爲什麼?
您使用where
關鍵字前的製表符。到GHC它看起來像這樣:
␉ where␠(f:_)␠=␠firstname
␠␠␠␠␠␠␠␠␠(l:_)␠=␠lastname
所以,GHC認爲在where
塊的第一行開始於塔14(對於IIRC 8列標籤計數),而第二線開始於第9欄,這將導致錯誤。
您應該使用好文本編輯器將標籤轉換爲4個空格給你。
謝謝。解決了。你是對的。該死的選項卡 –
順便說一句,你不需要助手功能,可以直接在參數
initials :: String -> String -> String
initials (f:_) (l:_) = [f,'.',' ',l,'.']
我沒有模式匹配...... http://codepad.org/LVecpglP 唯一錯誤我認爲最後一行沒有正確縮進。你糾正後...解析錯誤應該去 –