gpt4 book ai didi

haskell - 笛卡尔平面

转载 作者:行者123 更新时间:2023-12-02 05:29:00 25 4
gpt4 key购买 nike

我试图在 Haskell 中定义一个函数,它接受一个整数参数 c 并返回笛卡尔平面上所有点的列表,形式为 (x/c,y/c)其中 xy是整数。 x/c介于 -2 和 1 和 y/r 之间在-1和1之间

这是我到目前为止所得到的,我几乎可以肯定是正确的,但我在输入时遇到解析错误 =当我特别在这一行运行它时:cart xs ys c = [(y/c,x/c) | x <- xs, y <- ys]

plane :: Int -> [a]
plane c = cart [-1*c .. 1*c] [-2*c .. 1*c] c
cart xs ys c = [(y/c,x/c) | x <- xs, y <- ys]

示例输出为:plane 1会产生:

[(-2.0, -1.0), (-1.0, -1.0), ( 0.0, -1.0), ( 1.0, -1.0),
(-2.0, 0.0), (-1.0, 0.0), ( 0.0, 0.0), ( 1.0, 0.0),
(-2.0, 1.0), (-1.0, 1.0), ( 0.0, 1.0), ( 1.0, 1.0)]

任何人都知道我该如何解决这个问题!谢谢

最佳答案

你错过了 where,除此之外你似乎有一些类型错误。

  1. [a] 太笼统了
  2. / 仅适用于小数类型。

所以

plane :: Int -> [(Int,Int)]
plane c = cart [-1*c .. 1*c] [-2*c .. 1*c] c where
cart xs ys c = [(y `div` c,x `div` c) | x <- xs, y <- ys]

可能是你想要的。对您所拥有的或多或少起作用的最小改变。

关于haskell - 笛卡尔平面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12667227/

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