// file contain db
$Mysqli = new mysqli('../MyFolder/MyDb.sql', 'User', 'Pass');
$Mysqli -> query("SELECT * FROM Table");
// file contain table
$Mysqli = new mysqli('../MyFolder/MyTable.sql', 'User', 'Pass');
$Mysqli -> query("SELECT * FROM Table");
:检查列表是否包含longEnough n xs
个元素。
示例:
n
longEnough 2 [1..5] == True
longEnough 3 [1,2,3] == False
longEnough 0 [] == False
答案 0 :(得分:1)
我想这是功课,你仍然在学习基础知识,所以我首先会给你一些使用递归而不是foldr
的提示(如@dfeuer建议的那样):
首先注意一些明显的案例:
xs = []
则结果始终为False
(假设您不以某种奇怪的方式关注否定n
)n = 0
和xs
非空,那么它总是True
n > 0
xs
有多个元素也许你有一些递归的想法可以打破最后一个案例?
这是一个骨架:
longEnough :: Int -> [a] -> Bool
longEnough _ [] = False
longEnough 0 _ = True
longEnough n (_:xs) = let n' = (n-1) in undefined
对于这些情况 - 如果你仔细观察,你会发现我甚至在解决方案上添加了更多提示。
n
以及那些会发生什么......我在这里不 foldr
的全部内容,那么您应该尝试使用foldr
实现此目的似乎没有来自OP的更多反馈,所以我想我也可以发布解决方案,因为我会开始:
longEnough :: Int -> [a] -> Bool
longEnough _ [] = False
longEnough 0 _ = True
longEnough n (_:xs) = longEnough (n-1) xs
(还有很多事要做......)
以下是提到的测试用例:
λ> longEnough 2 [1..5]
True
λ> longEnough 3 [1,2,3]
False
λ> longEnough 0 []
False
λ> longEnough 20 [1..]
True