今天晚上在CPyUG上看到有pyer感慨函数式编程,便把毕设时开小差下载下来的HaskellPlatform安装上,写了以下函数,用于实现Descartesian Product。算是一步一步更General吧。高级语言表达思维,硬件来确认,他们接起来的细节是什么?
enum :: Int -> [[Char]] enum 1 = ["A", "T", "C", "G"] enum n = [ x:enum_decr | x <- "ATCG", enum_decr <- enum (n - 1) ] enum' :: [Char] -> Int -> [[Char]] enum' init_value 1 = [ [x] | x <- init_value ] enum' init_value n = [ x:enum_prev | x <- init_value, enum_prev <- enum' init_value (n - 1) ] enum'' :: [a] -> Int -> [[a]] enum'' init_value 1 = [ [x] | x <- init_value ] enum'' init_value n = [ x:enum_prev | x <- init_value, enum_prev <- enum'' init_value (n - 1) ]
没有评论:
发表评论