gpt4 book ai didi

purescript - 您如何使用 PureScript 向用户呈现任何数据类型?

转载 作者:行者123 更新时间:2023-12-03 23:56:53 28 4
gpt4 key购买 nike

我想制作一个非常人性化的开发环境,我正在考虑使用 PureScript 来提供语言部分。我看到开箱即用,Show不适用于作为 Show 实例的事物的记录:

log (show {a:5})

“试试 PureScript!” ( http://try.purescript.org/ ) 编译器说:
   No type class instance was found for

Prelude.Show { a :: Int
}

是否有一种工具可以通用打印任何数据结构,尤其是包含记录的数据结构?是否有某种类型的技巧可以支持一般地遍历记录以支持我自己的类,例如 present :: Present a => a -> Presentation ?问题是我不知道什么类型会提前。用户输入记录,我希望能够呈现它。看来我必须修补编译器以支持这一点。

最佳答案

实例头中不允许记录。讨论和原因见this thread .它们必须包裹在 data 中或 newtype如果我们想为他们编写实例。

但是,有一个 generics library和一个派生机制,让我们生成 Show实例。

import Data.Generic

data Foo = Foo {a :: Int} | Bar {b :: String}
derive instance genericFoo :: Generic Foo

instance showFoo :: Show Foo where
show = gShow

关于purescript - 您如何使用 PureScript 向用户呈现任何数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37433302/

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