作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在读“Making Our Own Types and Typeclasses”的一部分,来自“为您学习 Haskell 大有裨益!”。
按照文本我在 GHCi 中编写代码并出现错误。
data Shape = Circle Float Float Float | Rectangle Float Float Float Float
surface :: Shape -> Float
<interactive>:2:1: error:
Variable not in scope: surface :: Shape -> Float
当我用文本编辑器编写代码并从 GHCi 加载时,它可以正常工作。
我应该如何在 GHCi 中定义数据类型?
最佳答案
你正确定义了数据类型,但是当你想在GHCi中输入多行语句时,你需要使用:{
和:}
,或者使用制作多行语句的另一种机制。因此,您可以输入:
Prelude> data Shape = Circle Float Float Float | Rectangle Float Float Float Float
Prelude> <b>:{</b>
Prelude| surface :: Shape -> Float
Prelude| surface (Circle _ _ r) = pi * r ^ 2
Prelude| surface (Rectangle x1 y1 x2 y2) = (abs $ x2 - x1) * (abs $ y2 - y1)
Prelude| <b>:}</b>
关于haskell - 如何在 GHCi 中定义数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59154523/
我是一名优秀的程序员,十分优秀!