我一直在观看一个有趣的视频,其中Haskell中的类型类用于解决所谓的"表达式问题".大约15分钟后,它显示了类型类如何用于"打开"基于区分联合扩展的数据类型 - 可以单独添加其他区分符,而无需修改/重建原始定义.
我知道F#中没有类型类,但有没有办法使用其他语言功能来实现这种可扩展性?如果没有,我们有多接近解决F#中的表达问题?
澄清:我假设问题的定义如同
系列的前一个视频所述 - 数据类型的可扩展性和数据类型的操作具有代码级模块化和单独编译的功能(扩展可以部署为单独的模块而不需要需要修改或重新编译原始代码)以及静态类型安全.