库中的列表上是否有一个操作来生成n个元素的组?例如:n = 3
groupInto 3 [1,2,3,4,5,6,7,8,9] = [[1,2,3],[4,5,6],[7,8,9]]
Run Code Online (Sandbox Code Playgroud)
如果没有,我该怎么办?
给定矩阵的大小和位置p.如何用p中的1和其他位置的0填充矩阵?
Ex.: size=(3,3) p=(3,1)
[0 0 0]
[0 0 0]
[1 0 0]
Run Code Online (Sandbox Code Playgroud)
我定义了:
type Matrix= [[Int]]
type Pos = (Int,Int)
f:: Pos->Pos->Matrix
Run Code Online (Sandbox Code Playgroud)
f例如,回报将是:
[[0,0,0],[0,0,0],[1,0,0]]
Run Code Online (Sandbox Code Playgroud)
我很难开始,即在想法如何实现该功能f.谁能帮我?
这段代码:
validate :: Matrix-> Bool
validate x: [] = length x
validate x: xs = (length x == lenght.head $ xs) == (validate tail xs)
Run Code Online (Sandbox Code Playgroud)
产生此错误:
Parse error in pattern: validate
Run Code Online (Sandbox Code Playgroud)
为什么?
我的目标是,如果矩阵的格式正确,即所有行中的列数相等,则返回true,反之亦然.
在Data.list中设置:
"设置"操作
nub :: Eq a => [a] -> [a]
Run Code Online (Sandbox Code Playgroud)
为O(n ^ 2).nub函数从列表中删除重复的元素.特别是,它只保留每个元素的第一次出现.(名称nub的意思是"本质".)这是nubBy的一个特例,它允许程序员提供自己的相等测试.
我不能直接使用这个功能.我如何使用功能小块?我需要进口一些东西吗?
我需要创建一个f:: Log->[String] 能够做到这一点 的函数(((o, i ,d),s) = [(o, i ,d)]
type Log = (Plate, [String])
Run Code Online (Sandbox Code Playgroud)
type Plate = (Pin, Pin, Pin)
type Pin = (Char, Int)