2
我正在爲從k值選擇中繪製的n個元素重複排列編寫代碼。所以我的結果集的基數應該有k^n個元素。在Haskell中,這相當簡單。例如,我們可以這樣寫:將Haskell代碼轉換爲標準ML(與重複組合)
進口Control.Monad(replicateM)
主要= mapM_打印(replicateM 2 [1,2,3])
那麼你會得到列表如下:
[1,1] [1,2] [1,3] [2,1] [2,2] [2,3] [3,1] [3,2] [3 ,3]
但在標準ML上,我不知道該怎麼做。
我嘗試這樣做:
樂趣combs_with_rep(K,XXS)=
case (k, xxs) of (0,_) => [[]] |(_, []) => [] |(k, x::xs) =>List.map (fn ys => x::ys) (combs_with_rep((k-1),xxs))@ combs_with_rep(k,xs)
不過這個名單是不完整的,我不知道爲什麼....
Haskell中有沒有模擬編碼做同樣的事情?或者我應該如何解決我的sml代碼?
任何幫助表示讚賞!