![](/img/trans.png)
[英]How do I correctly use Control.Exception.catch in Haskell?
[英]How do I correctly use toLower in Haskell?
我最近開始學習Haskell,並想將某些內容轉換為小寫。 我查找了函數“ toLower”,但它似乎不起作用。
Prelude> import Data.Text
Prelude Data.Text> toLower "JhELlo"
<interactive>:2:9: error:
* Couldn't match expected type `Text' with actual type `[Char]'
* In the first argument of `toLower', namely `"JhELlo"'
In the expression: toLower "JhELlo"
In an equation for `it': it = toLower "JhELlo"
Prelude Data.Text> toLower 'JhELlo'
<interactive>:3:9: error:
* Syntax error on 'JhELlo'
Perhaps you intended to use TemplateHaskell or TemplateHaskellQuotes
* In the Template Haskell quotation 'JhELlo'
Prelude Data.Text>
它不起作用,因為您嘗試使用的版本只能在Text
而不是String
。 這是兩種不同的類型。 此時,您有兩個選擇:
1)使用toLower
從Data.Char
; 這是一個單一字符,您可以將其映射到字符串上:
map toLower "JhELlo"
2)將您的字符串轉換為Data.Text
(並可選地再次返回):
unpack . toLower . pack $ "JhELlo"
實際上,還有其他的toLower
版本 。 Data.Sequences
的一個似乎是多態的(因此應同時適用於兩者),但它可能需要拉入mono-traversable
程序包作為依賴項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.