List 如何为网格(2d列表)类型创建indexedMap函数?
对于提供的List 如何为网格(2d列表)类型创建indexedMap函数?,list,function,dictionary,elm,List,Function,Dictionary,Elm,对于提供的列表类型,() 我制作了一个网格类型,定义为类型别名网格a=列表(列表a) 我想为这个Grid类型创建一个类似的indexedMap函数,签名为indexedMap:((Int,Int)->a->b)->Grid a->Grid b,但我知道如何操作。您必须使用列表。indexedMap两次: indexedMap f grid = List.indexedMap (\outer list -> List.indexedMap (\inner item -> f
列表
类型,()
我制作了一个网格
类型,定义为类型别名网格a=列表(列表a)
我想为这个
Grid
类型创建一个类似的indexedMap
函数,签名为indexedMap:((Int,Int)->a->b)->Grid a->Grid b
,但我知道如何操作。您必须使用列表。indexedMap
两次:
indexedMap f grid =
List.indexedMap
(\outer list -> List.indexedMap (\inner item -> f (outer,inner) item) list)
grid
第一个List.indexedMap
处理“外部列表”,第二个List.indexedMap
处理“内部列表”,其中outer
和internal
分别指这两个列表中的索引
如果您更喜欢无点样式,也可以使用
indexedMap f =
List.indexedMap
(\outer -> List.indexedMap (\inner -> f (outer,inner)))
indexedMap f =
List.indexedMap
(\outer -> List.indexedMap (\inner -> f (outer,inner)))