簡體   English   中英

試圖在haskell中獲得2個字符串的首字母

[英]Trying to get the initials of 2 string in haskell

initt [f:_] [l:_] = f ++ " " ++ l

然后我打電話

initt "First" "Last"

我收到一個錯誤,說無法將'Char'與'[Char]'匹配

我真的不明白。

我想你想要的

initt (f:_) (l:_) = [f, ' ', l]

[f:_]相當於[(f:_)] ,它匹配像["First"]這樣的東西

此外(++)適用於字符串,而fl應該是字符。 充其量,你可以做類似[c] ++ " " ++ [l]事情,但[f, ' ', 'l']更好更簡單。

++列表連接。 fl打包到列表中:

[f] ++ " " ++ [l]

或者像Ingo建議的那樣創建它:

[f, ' ', l]

此外, head:tail上的模式匹配意味着它是一個列表,所以不需要[f:_] ,而只需要(f:_)

這將我們帶到整個解決方案:

initt (f:_) (l:_) = [f, ' ', l]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM