繁体   English   中英

理解Haskell的'toUpper`

[英]Understanding Haskell's `toUpper`

查看toUpper的Haskell源代码

toUpper c = chr (fromIntegral (towupper (fromIntegral (ord c))))  
... 
foreign import ccall unsafe "u_towupper"
  towupper :: CInt -> CInt

chru_towupper是什么意思? 我对foreign import ccall unsafe部分感到好奇。 Haskell源实际上是否会发生变异,因此unsafe

第一个ordChar转换为Int ,然后fromIntegral将其转换为CInt 在另一侧fromIntegral转换一个CIntInt ,然后chr的转换IntChar

unsafe外部导入意味着C函数u_towupper不会回调到haskell。 如果Ghc知道这一点,那么它可以进行一些优化。 它与变异无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM