Haskell中的Prolog Rule Squaring

时间:2016-04-15 18:38:35

标签: haskell

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

square([],[])。

1 个答案:

答案 0 :(得分:1)

它可以简单地写成

isSquare [] [] = True
isSquare (x:xs) (y:ys) = x*x==y && isSquare xs ys

也许你可能想要增加相等的长度。

也可以写

and $ zipWith (\x y -> x*x==y)

或者可能是最短的

(==) . map (^2)