Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 莎士比亚模板中的循环映射_Loops_Haskell_Dictionary_Yesod - Fatal编程技术网

Loops 莎士比亚模板中的循环映射

Loops 莎士比亚模板中的循环映射,loops,haskell,dictionary,yesod,Loops,Haskell,Dictionary,Yesod,莎士比亚的模板中有@forall可以迭代列表。假设我有一个Data.Map.Map格式的m=Map.fromList[(“key1”、“value1”),(“key2”、“value2”)]。我怎样才能产生输出 <li>key1 – value1</li> <li>key2 – value2</li> 键1–值1 键2–值2 我已经知道解决办法了 $forall (k,v) <- Map.toList m <li>#{

莎士比亚的模板中有
@forall
可以迭代列表。假设我有一个
Data.Map.Map
格式的
m=Map.fromList[(“key1”、“value1”),(“key2”、“value2”)]
。我怎样才能产生输出

<li>key1 – value1</li>
<li>key2 – value2</li>
  • 键1–值1
  • 键2–值2
  • 我已经知道解决办法了

    $forall (k,v) <- Map.toList m
        <li>#{k} – #{v}
    

    $forall(k,v)我会这样做的。您可以使用一些新类型的包装,但是我喜欢显式的
    Map.toList
    。以前从未听说过“新类型包装”。它们是什么?这是一个很重要的话题。在这种情况下,newtypes是允许存在不同typeclass实例的特殊包装类型。在这种情况下,它将是一个新类型,因此
    映射的
    可折叠的
    实例将提供键和值,而不仅仅是值。但正如我所说,我更喜欢
    Map.toList
    方法。haskell cafe或单独的问题是询问更多新类型细节的好地方。