gpt4 book ai didi

opengl - haskell 与 Data.Map 更新有关的问题

转载 作者:行者123 更新时间:2023-12-02 08:15:09 25 4
gpt4 key购买 nike

我正在尝试编辑顶点。我可以添加它,但是当我使用更新时我得到:

Couldn't match expected type `(GLfloat, GLfloat, GLfloat)
-> Maybe (GLfloat, GLfloat, GLfloat)'
with actual type `(t0, t1, t2)'
In the first argument of `Map.update', namely `(- 0.75, 0.25, 0.0)'
In the expression: Map.update (- 0.75, 0.25, 0.0) "v1" faceMap
In an equation for `it':
it = Map.update (- 0.75, 0.25, 0.0) "v1" faceMap
<小时/>
import qualified Data.Map as Map
import Graphics.UI.GLUT
import Graphics.Rendering.OpenGL

faceMap :: Map.Map [Char] (GLfloat, GLfloat, GLfloat)
faceMap = Map.fromList $
[("v1", (-0.25, 0.25, 0.0 ))
,("v1", (0.75, 0.35, 0.0))
,("v3", (0.75, -0.15, 0.0))
,("v4", (-0.75, -0.25, 0.0))
]
<小时/>

如果您知道除编辑值之外的其他方法,那就太好了,是的,这就是 OpenGL。

最佳答案

Data.Map.updateinsert 略有不同(如果您交换参数,它应该在您的示例中起作用)。

  • insert 在 map 中设置一个值,如果该值已存在,则将其替换。

  • update 执行查找并使用函数根据先前的值来定义该值将发生的情况。它可以返回 Nothing 来声明应删除该键的值,或者Just 新值。

也许类型签名会更好地阐明:

update :: Ord k => (a -> Maybe a) -> k -> Map k a -> Map k a

insert :: Ord k => k -> a -> Map k a -> Map k a

关于opengl - haskell 与 Data.Map 更新有关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21628600/

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