我需要修改这个文件,通过取两个参数“A,B”使“square / 2”Prolog规则在haskell中起作用。 参数是数字列表。这两个列表应该具有相同数量的元素。只有当所有元素B都是来自A的元素的平方并且具有相同的顺序时才是如此。下面的代码是Prolog规则的基本案例。
square([],[])。
答案 0 :(得分:1)
它可以简单地写成
isSquare [] [] = True
isSquare (x:xs) (y:ys) = x*x==y && isSquare xs ys
也许你可能想要增加相等的长度。
也可以写
and $ zipWith (\x y -> x*x==y)
或者可能是最短的
(==) . map (^2)