在Haskell中使用以下代码:
isPrime n
| n <= 1 = False
| n == 2 = True
| n == 3 = True
| even n = False
| otherwise = all (\p -> not $ divideBy p n) testingSlice
where
testingNumbers = iterate (+ 2) 3
testingSlice = takeWhile (\p -> square p <= n) testingNumbers
“\ p - &gt; square p&lt; = n?”是什么 “all(\ p - &gt; not $ divideBy p n)testingSlice”是什么意思?
“\ p - &gt; square p&lt; = n?”是什么意思?
如何翻译伪代码?
答案 0 :(得分:1)
\p -> square p <= n
它是一个未命名的(匿名)函数,接受变量 p ,对其进行平方并将结果与 n 进行比较。
all (\p -> not $ divideBy p n) testingSlice
检查匿名函数是否为 testingSlice 中的每个元素返回 true 值。
了解lambdas。