Exp a -> a in Haskell 加速

Exp a -> a in Haskell Accelerate

Haskell 的加速库中是否有具有这种类型签名的函数:Exp a -> a

比如我有一个表达式:

max = maximum mat !! 0

在哪里 mat :: Acc (Matrix Int)

然后,max 的类型为 Exp Int,但我希望 max 可以表示为简单的 haskell 的 Int

您首先需要将 Exp 转换为 Acc,然后 运行,最后索引结果数组:

indexArray (run (unit max)) Z

也许直接使用最大数组更简单:

indexArray (run (maximum mat)) (0 :. Z)