小编Eri*_*rek的帖子

其他数据类型与自己构造的Natural数据类型交互

我已经为自然数字构建了自己的数据类型.

data Natural = Zero | Succ Natural 
instance Show Natural where 
         show (Zero) = "0"
         show (Succ Zero) = "S 0"
         show (Succ n) = "S(" ++ show n ++ ")"
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个函数来与基本数据类型(主要是Int)进行交互,如下所示:

intToNat:: Int -> Natural
intToNat 0 = Zero
intToNat n = (Succ n) - 1

natToInt:: Natural -> Int
natToInt Zero = 0
natToInt (Succ n) = 1 + natToInt n
Run Code Online (Sandbox Code Playgroud)

嗯,这根本不起作用,问题是,我必须将此函数保持为递归函数.我不知道这个read功能是否有用.

更新:代码编译方式的方式是在函数中使用:

intToNat:: Int -> Natural
intToNat 0 = Zero
intToNat n = …
Run Code Online (Sandbox Code Playgroud)

haskell recursive-datastructures

0
推荐指数
1
解决办法
49
查看次数

标签 统计

haskell ×1

recursive-datastructures ×1