2016-09-25 66 views
0

所以基本上我有:如何給參數的函數,而使用其它函數內部在Haskell

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 

,並在工作(即使我在第二行改變2不同數量),但我需要最後一個函數有兩個參數是這樣的:

finalList n k 

其中k應給予numList」要像

numList' = take k numList 

我也不能使

numList' k = take k numList 

因爲然後函數listsList不起作用。 我該如何解決這個問題?

回答

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 
+0

非常感謝,它現在工作非常完美! – Michiru

相關問題