gpt4 book ai didi

haskell - 制作更好的 Haskell 函数

转载 作者:行者123 更新时间:2023-12-02 21:29:19 24 4
gpt4 key购买 nike

我有以下 Haskell 函数

fun::Vertex3 GLfloat -> Vertex3 GLfloat ->  Vertex3 GLfloat
fun (Vertex3 x0 y0 z0) (Vertex3 x1 y1 z1) = do sth here
where
p0 = (Vertex3 x0 y0 z0)
p1 = (Vertex3 x1 y1 z1)
p = p0 + p1

我想知道是否有办法不重复(Vertex3 x0 y0 z0) (Vertex3 x1 y1 z1) 代码内

我正在寻找类似的东西:

fun::Vertex3 GLfloat -> Vertex3 GLfloat ->  Vertex3 GLfloat
fun p0 p1 = do sth here
where
p0 = (Vertex3 x0 y0 z0)
p1 = (Vertex3 x1 y1 z1)
p = p0 + p1

最佳答案

是的,您可以使用as-pattern [AGItH'98] :

fun::Vertex3 GLfloat -> Vertex3 GLfloat -> Vertex3 GLfloat
fun <b>p0@</b>(Vertex3 x0 y0 z0) <b>p1@</b>(Vertex3 x1 y1 z1) = do sth here
where p = p0 + p1

因此,我们在这里引用了参数 p0 以及数据构造函数中的元素(x0y0z0)。

这些作为模式可以在模式的不同级别使用。

关于haskell - 制作更好的 Haskell 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53805418/

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