[英]How can I use a Haskell type signature partway through an expression?
我正在使用此出色的教程作為基礎在Haskell中進行一些簡單的regexp工作,並且遵循作者的建議,即使用顯式類型簽名來獲取=~
〜regexp運算符以返回String
。 我的問題是我想要進一步操作(基本上toUpper
在結果toUpper
),而我還不太清楚如何做到這一點。
我已經嘗試了下面的每一種方法,但每一種方法我都Couldn't match expected type 'String' against inferred type 'Char'
錯誤或類似Couldn't match expected type 'String' against inferred type 'Char'
錯誤Couldn't match expected type 'String' against inferred type 'Char'
:
getSKU :: FilePath -> String
getSKU path =
toUpper $ path =~ "^sku[0-9]{5}" :: String
-- or...
getSKU path =
let key = (path =~ "^sku[0-9]{5}")
in toUpper key
-- or ...
getSKU =
toUpper . sub
where
sub p = (p =~ "^sku[0-9]{5}") :: String
我很困惑-如何在不使用整個單獨函數的情況下通過表達式部分表達類型簽名?
函數toUpper
具有簽名toUpper
Char -> Char
。 使用map
到String
所有字符上的toUpper
:
getSKU :: FilePath -> String
getSKU path =
map toUpper $ path =~ "^sku[0-9]{5}" :: String
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.