gpt4 book ai didi

string - 为什么 Data.String.IsString 类型类只定义一次转换?

转载 作者:行者123 更新时间:2023-12-03 23:26:57 24 4
gpt4 key购买 nike

为什么 Haskell 基础包只定义了 IsString类从 String 进行转换到 'like-string' 值,而不定义逆变换,从 'like-string' 值到 String ?

该类应定义为:

class IsString a where
fromString :: String -> a
toString :: a -> String

引用: http://hackage.haskell.org/packages/archive/base/4.4.0.0/doc/html/Data-String.html

最佳答案

原因是恕我直言,IsString的主要目的是通过 OverloadedStrings 用于 Haskell 源代码(或 (E)DSL——另见 Paradise: A two-stage DSL embedded in Haskell )中的字符串文字。语言扩展与其他多态文字的工作方式类似(例如,通过 fromRational 用于浮点文字或 fromInteger 用于整数文字)

术语IsString可能有点误导,因为它表明类型类表示类似字符串的结构,而实际上只是表示在 Haskell 源代码中具有带引号的字符串表示的类型。

关于string - 为什么 Data.String.IsString 类型类只定义一次转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7852505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com