如何在haskell中生成字母矩阵

use*_*052 0 haskell

用户必须键入维度(它是一个四边形矩阵),并生成随机字母.例如:generateMatrix 3

[('a', 'f', 'j'), ('t', 'a', 'b'), ('c', 'y', 'k')]
Run Code Online (Sandbox Code Playgroud)

每个元组都是一条线

小智 5

实现你正在寻找的随机性对初学者来说不是一项小任务,但假设你知道Haskell的基础知识,LYAH的随机性部分应该会帮助你.

http://learnyouahaskell.com/input-and-output#randomness

特别是,您可能会发现该randomRs函数很有用:

ghci> take 10 $ randomRs ('a','z') (mkStdGen 3) :: [Char]
"ndkxbvmomg"
Run Code Online (Sandbox Code Playgroud)

但是为了成功地在应用程序中使用它,你应该知道更多关于Haskell中的随机性和处理杂质,所以你真的应该阅读整个部分.

关于你的问题需要注意的另一件事是[(Char,Char,Char)]和[(Char,Char,Char,Char)]是不同的类型,所以没有简单的方法让单个函数返回元组列表不同长度取决于输入大小.对于你正在做的事情,你可能想要一个列表列表.