我有一个有限列表的函数
> kart :: [a] -> [b] -> [(a,b)]
> kart xs ys = [(x,y) | x <- xs, y <- ys]
Run Code Online (Sandbox Code Playgroud)
但如何为无限列表实现它?我听说过Cantor和集合理论......
我也发现了一个类似的功能
> genFromPair (e1, e2) = [x*e1 + y*e2 | x <- [0..], y <- [0..]]
Run Code Online (Sandbox Code Playgroud)
但是我不确定它是否有帮助,因为拥抱只会在没有中断的情况下发出对.
感谢帮助.
我有一个输入:
[ 8 `div` 2 + 1 .. ] !! 2 : [ 1 .. 3 ]
Run Code Online (Sandbox Code Playgroud)
输出是:
[7,1,2,3]
Run Code Online (Sandbox Code Playgroud)
但是...... Haskell首先计算了什么?
我不知道优先级,7来自哪里?
我必须展示Haskell需要计算多少步骤(两种方式 - 最左边的最里面和最左边的最外面的).它是为了这个功能
minimum [7,4,2,8]
Run Code Online (Sandbox Code Playgroud)
最小值定义为
minimum xs = head (isort xs)
Run Code Online (Sandbox Code Playgroud)
所以最里面的(?)步骤是:
1. minimum [7,4,2,8]
2. head (isort [7,4,2,8])
3. head (isort [4,7,2,8])
4. head (isort [2,4,7,8])
5. head [2:4:7:8]
6. (The output) => 2
Run Code Online (Sandbox Code Playgroud)
我对吗?我看不到另一种方法来解决它..但应该有一个..?
(抱歉英语不好)..
感谢帮助.
我的意思是:输入:后缀["你好"]输出:['ello','llo','lo','o']或者什么......开头是:
> suffixes :: [a] -> [[a]]
> suffixes [] = []
Run Code Online (Sandbox Code Playgroud)
我觉得有点像
> drop (n+1) (x:xs) = drop n xs
> drop _ xs = xs
Run Code Online (Sandbox Code Playgroud)
但在这里,我想省略"幸存"列表的第一个元素.怎么开始?也许
> suffixes as = [as!!2:xs]
Run Code Online (Sandbox Code Playgroud)
或者类似的?
我正在尝试选择在该市所有分支机构拥有帐户的人.(使用SQL查询)
SELECT A.customId
FROM accountholder as A
WHERE NOT EXISTS (
(SELECT name
FROM branch
WHERE city='LA')
EXCEPT (SELECT C.branch
FROM accountholder AS B, account AS C
WHERE B.accountnumber = C.accountnumber
AND A.customId = B.customId));
Run Code Online (Sandbox Code Playgroud)
现在我得到了:
错误1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'EXCEPT附近使用正确的语法(在第1行选择C.branch FROM accountholder AS B,account AS C WHERE B.accountnumber ='
我没有看到问题.我是盲目还是愚蠢?
感谢帮助.
我必须实现一个功能 maybemap
它具有(类似于功能图)功能
f :: a -> b
Run Code Online (Sandbox Code Playgroud)
它应该应用于列表类型Maybe a并给出一个列表Maybe b
maybemap :: (a -> b) -> [Maybe a] -> [Maybe b]
Run Code Online (Sandbox Code Playgroud)
我该如何定义这个maybemap功能?