通用函数中的Haskell类型构造函数

时间:2019-05-05 18:45:14

标签: haskell generics lava

我正在Haskell Lava HDL系统中闲逛,并被困在 理解 http://hackage.haskell.org/package/chalmers-lava2000-1.6.1/docs/src/Lava-Vhdl.html#writeVhdl

有人可以告诉我(var "inp")中的writeVhdl功能是什么?

函数var尚未定义,似乎是由http://hackage.haskell.org/package/chalmers-lava2000-1.6.1/docs/src/Lava-Generic.html#line-253class Constructive中我不熟悉的某些元编程生成的。 / p>

函数var看起来像一个构造函数。这种机制如何运作?

writeVhdl的输入是类似电路的描述

halfAdd (a, b) = (sum, arry)
  where
    sum = xor2 (a, b)
    arry = and2 (a, b)

1 个答案:

答案 0 :(得分:1)

  

有人可以告诉我writeVhdl解析为什么功能(var“ inp”)?

这取决于您传递给writeVhdl第二个参数即circ的内容。它的参数类型(如果我没看错的话)正是var "foo"返回的类型。

您可以通过输入ghci来观察:t some expression中的表达式类型。尝试将代码加载到GHCi会话中,并使用:t命令播放。