Haskell中的Prolog规则平方

Haskell中的Prolog规则平方,haskell,Haskell,我需要修改这个文件,通过使用两个参数“A,B”,使“square/2”Prolog规则在haskell中工作 参数是数字列表。这两个列表应该有相同数量的元素。只有当所有元素B都是A中元素的平方且顺序相同时才是真的。下面的代码是Prolog规则的基本情况 正方形([],[])。它可以简单地写出来 isSquare [] [] = True isSquare (x:xs) (y:ys) = x*x==y && isSquare xs ys 也许您也希望添加相等的长度 也可以写 an

我需要修改这个文件,通过使用两个参数“A,B”,使“square/2”Prolog规则在haskell中工作 参数是数字列表。这两个列表应该有相同数量的元素。只有当所有元素B都是A中元素的平方且顺序相同时才是真的。下面的代码是Prolog规则的基本情况


正方形([],[])。

它可以简单地写出来

isSquare [] [] = True
isSquare (x:xs) (y:ys) = x*x==y && isSquare xs ys
也许您也希望添加相等的长度

也可以写

and $ zipWith (\x y -> x*x==y)
或者也许是最短的

(==) . map (^2)

我们可以看看你用Haskell版本做了些什么吗?嗯,你需要修改一些东西。你真的有问题并且需要知道吗?我在这篇文章中计算了零个问号。你有很多好的Haskell问题的要素,甚至是非常介绍性的问题。但是你没有问题,所以我们不知道是什么t来帮助你。例如,你描述函数的类型应该是什么,你能为它写一个类型签名吗?如果不能,你能问一个关于类型签名的问题吗?你在prolog中有一个基本情况。你能在Haskell中写它吗?如果不能,你能在Haskell中问一个关于基本情况的问题吗?如果你能做到这一切,你能问一个问题吗你对问题的下一部分有什么看法?很好。这就是我对你的嘲笑。