gpt4 book ai didi

typeclass - 为什么 PureScript 中的实例有名称?

转载 作者:行者123 更新时间:2023-12-05 01:00:57 24 4
gpt4 key购买 nike

我现在在一个项目上使用 PureScript 并遇到了一些实例(我是新手,并且正在像我一样学习)。基本上我必须创建一个实例才能重载具有不同类型的函数。

public String toStr(Integer i) {
return String.valueOf(i);
}

public String toStr(Float i) {
return String.valueOf(i);
}

(我知道,这很奇怪,但仅作为示例)。据我了解,这可以使用类型类编写。

foreign import unsafeToStr :: forall a. a -> String

class ToStr a where
toStr :: a -> String

instance intToStr :: ToStr Int where
toStr a = unsafeToStr a

instance numToStr :: ToStr Number where
toStr a = unsafeToStr a

这就是我们的做法。据我所知,实例不需要命名,因为编译器会自动计算出来。我什至出于好奇对其进行了测试,它适用于我给它起的任何名称。

那么为什么 PureScript 中类型类的实例有名字呢?

最佳答案

根据本书PureScript by Example ,这是因为:

in PureScript, type class instances are named to aid the readability of the generated JavaScript.

但我认为您是正确的,名称没有任何意义,并且可以说是由编译器生成的。

关于typeclass - 为什么 PureScript 中的实例有名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48151439/

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