我被建议使用csv-conduit作为一个很好的Haskell包来处理CSV文件.我想学习它是如何工作的,但是文档对于新手Haskell程序员来说太简洁了.
有没有办法让我通过GHCi中的反复试验来弄清楚它是如何工作的?
更具体地说,我应该从 GHCi 加载模块和文件,还是应该编写一个简单的HS文件来加载它们然后以交互方式移动?
我提到了csv-conduit,但是我打开了使用任何 CSV包.我只需要把手放在一边然后愚弄它,直到我感到安心(就像我在IDLE中做的那样).
我正在考虑矩阵A,使得A = PDP ^ -1.
我使用Mathematica解决这个问题的方法是:
a={{0, -1}, {-1, 0}}
d = DiagonalMatrix[Eigenvalues[a]]
{{-1,0}, {0,1}}
p = Transpose[Eigenvectors[a]]
p.d.Inverse[p]
{{0, -1}, {-1, 0}}
Run Code Online (Sandbox Code Playgroud)
哪个是对的.
问题是,P矩阵不是我预期的.Mathematica生成的矩阵是
p={{1, -1}, {1, 1}}
Run Code Online (Sandbox Code Playgroud)
但我在寻找
p2={{1/Sqrt[2], 1/Sqrt[2]}, {1/Sqrt[2], -(1/Sqrt[2])}}
p2.d.Inverse[p2]
{{0,-1}, {-1,0}}
Run Code Online (Sandbox Code Playgroud)
这也解决了这个问题.有没有办法让我强制Mathematica在执行Transpose [Eigenvectors [a]]时向我显示不同的答案?
请原谅我找不到更好的头衔.
说我有两个清单:
list1 = ["123", "123", "123", "456"]
list2 = ["0123", "a123", "1234", "null"]
Run Code Online (Sandbox Code Playgroud)
它描述了一个映射(见这个问题).我想dict从这些列表创建一个,知道list1包含键和list2值.在dict这种情况下应该是:
dict1 = {"123":("0123", "a123", "1234"), "456":("null",)}
Run Code Online (Sandbox Code Playgroud)
因为list1通知我们"123"与三个值相关联.
我怎么能以编程方式生成这样的字典?