基本上我有:
-ea
并且它正在工作(即使我在第二行中将2更改为不同的数字)但我需要最后一个函数有两个这样的参数:
numList = [0,1..]
numList' = take 2 numList
listsList = [] : [new : old | old <- listsList, new <- numList'] -- list of all possible binary numbers (infinite)
listsList' = take 10000 listsList -- just to not stuck because of infinite list
finalList n = [ x | x <- listsList', length x == n] -- taking n-sized lists
其中k应该给numList'类似
finalList n k
我也做不了
numList' = take k numList
因为函数listsList不起作用。 我该如何解决这个问题?
答案 0 :(得分:2)
numList'
不是函数;它只是调用take
产生的列表。因此,你不能传递一个不同的参数;该函数已被调用。最简单的方法是定义一个函数digits
,它将k
作为参数并返回所需的整数子集。
digits k = [0..k-1]
listsList k = [] : [new : old | old <- listsList k, new <- digits k] -- list of all possible binary numbers (infinite)
listsList' k = take 10000 $ listsList k -- just to not stuck because of infinite list
finalList n k = [ x | x <- listsList' k, length x == n] -- taking n-sized lists