haskell-检查R^2中的两点
我提出两点。 现在,我需要检查这些点是否相同,所以我要:haskell-检查R^2中的两点,haskell,Haskell,我提出两点。 现在,我需要检查这些点是否相同,所以我要: type datatypePoint = (Float,Float) anyLine :: datatypePoint -> datatypePoint -> datatypeLine anyLine a b = [[fst a, fst b] , [snd a, snd b]] | (fst a == fst b) && (snd a == snd b) = error "Identical"
type datatypePoint = (Float,Float)
anyLine :: datatypePoint -> datatypePoint -> datatypeLine
anyLine a b = [[fst a, fst b] , [snd a, snd b]]
| (fst a == fst b) && (snd a == snd b) = error "Identical"
| otherwise = error "Not identical"
但我得到了一个错误:
unexpected |
谁能告诉我为什么?我做错了什么?您可以指定结果或定义案例;你不能同时做这两件事
anyLine :: datatypePoint -> datatypePoint -> datatypeLine
anyLine a b
| (fst a == fst b) && (snd a == snd b) = error "Identical"
| otherwise = error "Not identical"
您可以指定结果或定义案例;你不能同时做这两件事
anyLine :: datatypePoint -> datatypePoint -> datatypeLine
anyLine a b
| (fst a == fst b) && (snd a == snd b) = error "Identical"
| otherwise = error "Not identical"
您可以指定结果或定义案例;你不能同时做这两件事
anyLine :: datatypePoint -> datatypePoint -> datatypeLine
anyLine a b
| (fst a == fst b) && (snd a == snd b) = error "Identical"
| otherwise = error "Not identical"
您可以指定结果或定义案例;你不能同时做这两件事
anyLine :: datatypePoint -> datatypePoint -> datatypeLine
anyLine a b
| (fst a == fst b) && (snd a == snd b) = error "Identical"
| otherwise = error "Not identical"
这里有一些错误,首先,所有类型都以Haskell中的大写字母开头
type Point = (Float,Float)
anyLine :: Point -> Point -> Point
接下来,模式匹配发生在=
符号之前
anyLine (a1, a2) (b1, b2)
| a1 == b1 && a2 == b2 = error "Identical"
| otherwise = error "Not identical"
有了警卫,我们省略了等号
这也可能是
anyLine a b
| a == b = ...
| otherwise = ...
我个人认为,花点时间阅读一本好的Haskell教程是值得的,以学习一些你所缺少的基本概念。这里有一些错误,首先,所有类型的Haskell都以大写字母开头
type Point = (Float,Float)
anyLine :: Point -> Point -> Point
接下来,模式匹配发生在=
符号之前
anyLine (a1, a2) (b1, b2)
| a1 == b1 && a2 == b2 = error "Identical"
| otherwise = error "Not identical"
有了警卫,我们省略了等号
这也可能是
anyLine a b
| a == b = ...
| otherwise = ...
我个人认为,花点时间阅读一本好的Haskell教程是值得的,以学习一些你所缺少的基本概念。这里有一些错误,首先,所有类型的Haskell都以大写字母开头
type Point = (Float,Float)
anyLine :: Point -> Point -> Point
接下来,模式匹配发生在=
符号之前
anyLine (a1, a2) (b1, b2)
| a1 == b1 && a2 == b2 = error "Identical"
| otherwise = error "Not identical"
有了警卫,我们省略了等号
这也可能是
anyLine a b
| a == b = ...
| otherwise = ...
我个人认为,花点时间阅读一本好的Haskell教程是值得的,以学习一些你所缺少的基本概念。这里有一些错误,首先,所有类型的Haskell都以大写字母开头
type Point = (Float,Float)
anyLine :: Point -> Point -> Point
接下来,模式匹配发生在=
符号之前
anyLine (a1, a2) (b1, b2)
| a1 == b1 && a2 == b2 = error "Identical"
| otherwise = error "Not identical"
有了警卫,我们省略了等号
这也可能是
anyLine a b
| a == b = ...
| otherwise = ...
我个人认为,花时间阅读一本好的Haskell教程是值得的,以学习一些你遗漏的基本概念。其他人已经回答了这个问题,但我想指出,如果你使用“newtype”和“deriving”,这将更简单
保持类型a为泛型也没有什么坏处,因此现在这将适用于浮点、整数等的“点”。其他人已经回答了这个问题,但我想指出,如果使用“newtype”和“派生”,这将更加简单
保持类型a为泛型也没有什么坏处,因此现在这将适用于浮点、整数等的“点”。其他人已经回答了这个问题,但我想指出,如果使用“newtype”和“派生”,这将更加简单
保持类型a为泛型也没有什么坏处,因此现在这将适用于浮点、整数等的“点”。其他人已经回答了这个问题,但我想指出,如果使用“newtype”和“派生”,这将更加简单
保持a型泛型也没有什么坏处,所以现在这将适用于浮点、整数等的“点”好的,谢谢,你是对的,你知道解线性方程的模块吗?好的,谢谢,你是对的,你知道解线性方程的模块吗?好的,谢谢,你是对的,你知道解线性方程组的模块吗?好的,谢谢,你是对的,你知道解线性方程组的模块吗?除了你的错误,请注意1。2.即使如此,
==
-比较浮点值基本上注定会得到糟糕的结果,因为大多数计算中都有小的舍入误差通常,您只想检查您的错误,请注意1。2.即使如此,==
-比较浮点值基本上注定会得到糟糕的结果,因为大多数计算中都有小的舍入误差通常,您只想检查您的错误,请注意1。2.即使如此,==
-比较浮点值基本上注定会得到糟糕的结果,因为大多数计算中都有小的舍入误差通常,您只想检查您的错误,请注意1。2.即使如此,==
-比较浮点值基本上注定会得到糟糕的结果,因为大多数计算中都有小的舍入误差通常,您只想检查