gpt4 book ai didi

haskell - 为什么我不能在 ghci 中定义新类型?

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

当我尝试定义新类型时,我在 ghci 中遇到错误:

Prelude> data Point = Pt Int Int<interactive>:1:0: parse error on input `data'Prelude> let data Point = Pt Int Int<interactive>:1:4: parse error on input `data'

我做错了什么?

最佳答案

titaniumdecoy,我记得当我了解到经常提到的一点时,在 GHCi 中编写“let square x = x * x”之类的东西就像编写 let a = f bIO monad 中使用 do 表示法——在这种例子中说:

palindromize :: IO ()
palindromize = do
a <- readFile "foo.txt"
let b = reverse a
putStrLn (a ++ b)

同样,当您在 GHCi 中重新定义表达式时,有点像使用 do 表示法执行以下操作,这是完全合法的:

makeMess :: IO ()
makeMess = do
a <- readFile "foo.txt"
let b = reverse a
putStrLn (a ++ b)
let b = a
putStrLn (a ++ b)

没有人会在这样的序列中间声明数据类型,而是会在模块的其他地方这样做。我可能猜到存在某种理论上的反对意见,但唐·S. 的评论表明不存在这种反对意见。

关于haskell - 为什么我不能在 ghci 中定义新类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3126591/

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