gpt4 book ai didi

haskell - 值构造器的别名

转载 作者:行者123 更新时间:2023-12-05 00:13:00 29 4
gpt4 key购买 nike

是否可以为值构造函数定义别名?上下文是这样的:我正在编写一个程序,它将原始递归函数实现为图灵机。为此,我正在使用一元整数编码。我的图灵机类型定义如下:

-- definition of a Turing machine
data TuringMachine a = TuringMachine
State -- q0
(Set State) -- F
(Set State) -- Q
(Set (Symbol a)) -- Gamma
(Set (Symbol a)) -- Sigma
(Map (State, Symbol a) (State, Symbol a, Instruction)) -- delta
deriving (Show)

我的符号类型定义如下:
data Symbol a = Symbol a | Blank | Delim | Final | One deriving (Eq, Ord)

我有 One为了方便,所以我不需要写 Symbol 1到处。但这有点不整洁。我想定义类型之外的别名 Symbol , 喜欢
alias One = Symbol 1


alias Zero = Blank

这样的事情可能吗?

最佳答案

{-# Language PatternSynonyms #-}

pattern Zero :: Symbol a
pattern Zero = Blank

pattern One :: (Eq a, Num a) => Symbol a
pattern One = Symbol 1

作品(双向模式同义词)

关于haskell - 值构造器的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49516850/

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