gpt4 book ai didi

Haskell - 模式同义词在记录更新中的使用

转载 作者:行者123 更新时间:2023-12-04 12:19:13 27 4
gpt4 key购买 nike

我现在正在尝试一段代码:
https://mpickering.github.io/posts/2015-12-12-pattern-synonyms-8.html

{-# LANGUAGE PatternSynonyms #-}
pattern MyPoint :: Int -> Int -> (Int, Int)
pattern MyPoint{m, n} = (m,n)
m :: (Int, Int) -> Int
n :: (Int, Int) -> Int
test9 = (0,0) { m = 5 }
但是 test9抛出错误:
• ‘m’ is not a record selector
• In the expression: (0, 0) {m = 5}
我如何获得 test9上类?

最佳答案

当你写:

m :: (Int, Int) -> Int
n :: (Int, Int) -> Int
您正在声明 mn作为函数,它们失去了作为记录选择器的特殊位置。只需完全删除这些行:
{-# LANGUAGE PatternSynonyms #-}
pattern MyPoint :: Int -> Int -> (Int, Int)
pattern MyPoint{m, n} = (m,n)
test9 = (0,0) { m = 5 } -- (5, 0)

关于Haskell - 模式同义词在记录更新中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68194840/

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