我想在Haskell中编写替换算法。 我已经定义了一个多态数据类型Subst a
有一个构造函数S::[(String, a)] -> Subst a
像这样:Haskell中的替换算法
data Subst a = S [(String, a)]
我现在想编写一个函数single::String -> a -> Subst a
构建一个替代只有一个变量
这是我试过:
single::String -> a -> Subst a
single s1 (Subst a) = s1 a
不过,我得到这个错误:Not in scope: data constructor 'Subst'
有没有人有见识我做错了什么?
n.b.如果您创建的数据类型只包含“一个”值并且只有一个构造函数,则可以使用'newtype'来提高效率。 'newtype Subst a = Subst [(String,a)]'。通常,对于新类型,通常将构造函数命名为与类型名称相同。 –