如何解决Purescript:将 Char 转换为小写版本
将给定的 Char
转换为小写版本的更好方法是什么?
一种方法可能是转换为 String
:
charToLower :: Char -> Char
charToLower char =
Maybe.fromMaybe char
$ CodeUnits.charat 0
$ String.toLower
$ CodeUnits.singleton char
还有一个 toLower` from CodePoint.Unicode 包,但我想知道它是否是首选方式。
解决方法
我想最快的方法就是使用 FFI。可以这样轻松地编写 toLower
:
// Foreign/Char.js
module.exports.toLower = function charToLower(c) {
return c.toLower();
}
-- Foreign/Char.purs
module Foreign.Char where
foreign import toLower :: Char -> Char
或者如果你只想用纯脚本表达:
import Unsafe.Coerce (unsafeCoerce)
import Data.String as S
toLower :: Char -> Char
toLower = unsafeCoerce >>> S.toLower >>> unsafeCoerce
这最终归结为相同的 js 代码。您不能破坏 Char
的不变量,因为它最初只是 String
的一个子集并且具有相同的运行时表示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。