gpt4 book ai didi

haskell - 如何允许不同类型的类型变量统一?

转载 作者:行者123 更新时间:2023-12-02 16:39:06 25 4
gpt4 key购买 nike

我有一个具有以下类型签名的函数

{-# LANGUAGE FlexibleContexts #-}
dataLat :: Load r DIM1 Double
=> (Array r DIM1 Double -> Array U DIM1 Double, Array U DIM1 Double)

ArrayUDIM1 来自 Repa图书馆。 dataLat 创建数据,随后将其作为元组传递给其他函数。在某一时刻,r 类型变量与类型 D 统一(这又来自 Repa),但稍后 r 也应该与类型统一L(这是我的类型)。问题是它已经与D统一了,因此无法与L统一。我最终遇到了无法匹配预期类型错误。我认为这应该通过某种形式的更高级别类型来解决,但我无法弄清楚应该如何编写。有人可以帮我吗?

最佳答案

Try {-# LANGUAGE NoMonomorphismRestriction #-}

http://www.haskell.org/ghc/docs/7.6.1/html/users_guide/monomorphism.html

关于haskell - 如何允许不同类型的类型变量统一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13591096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com