我对Haskell非常陌生,对语言的"架构"印象深刻,但是我仍然困扰着monad是如何纯粹的.
由于你有任何指令序列,它使它成为一个不纯的函数,尤其是 I/O函数从任何角度来看都不是纯粹的.
是因为Haskell像所有纯函数一样假设IO函数也有返回值,但是以操作码的形式还是什么?我真的很困惑.
我有一个嵌套列表:
my_list = ['a','b','c','dog', ['pig','cat'], 'd']
Run Code Online (Sandbox Code Playgroud)
和一个字典:
my_dict = {'dog':'c','pig':'a','cat':'d'}
Run Code Online (Sandbox Code Playgroud)
我想使用dict,这样我得到一个列表:
new_list = ['a', 'b', 'c', 'c', ['a', 'd'], 'd']
Run Code Online (Sandbox Code Playgroud)
我尝试过类似的东西:
new_list = []
for idx1, item1 in enumerate(my_list):
for idx2, item2 in enumerate(item1):
new_list[idx1][idx2] = my_dict[item2]
Run Code Online (Sandbox Code Playgroud)
但是当我item2不存在时会收到错误dict.有一个更好的方法吗?