代码之家  ›  专栏  ›  技术社区  ›  WHITECOLOR

Purescript:将Char转换为小写版本

  •  0
  • WHITECOLOR  · 技术社区  · 3 年前

    转换一个给定的 Char 改成小写?

    String

    charToLower :: Char -> Char
    charToLower char =
       Maybe.fromMaybe char 
         $ CodeUnits.charAt 0 
         $ String.toLower 
         $ CodeUnits.singleton char
    

    在性能/简单性方面是否有更合适的方法?

    还有一个 toLower` from CodePoint.Unicode 但我想知道这是不是一种比较好的方式。

    0 回复  |  直到 3 年前
        1
  •  2
  •   aleksxor    3 年前

    我想最快的方法就是使用外国金融机构。写起来很容易 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 具有相同的运行时表示形式。