我在Haskell中编写了一个非常简单的程序,它接受两个列表并合并.但我不明白如何在Haskell中定义Module.
希尔是我的代码
module Merge(Merge (empty, list)merge) where ....
merge::[a] -> [a] -> [a]
merge xs [] = xs
merge [] ys = ys
merge (x:xs) (y:ys) = x:y:(merge xs ys)
Run Code Online (Sandbox Code Playgroud)
我不知道,在"哪里"写之后我该怎么做.只有列表操作,例如头尾等或?
谁能帮我?
该哈斯克尔'10报告显示了一个示例程序:
Run Code Online (Sandbox Code Playgroud)module Main where import A import B main = A.f >> B.f module A where f = ... module B where f = ...它相当于以下单模块程序:
Run Code Online (Sandbox Code Playgroud)module Main where main = af >> bf af = ... bf = ...
在where编写import语句,类声明,函数声明等之后.
人们还可以在括号之间写出口列表.这些导出是函数,类,类型,构造函数等.
使用where输入范围是不特定的模块.当我们在a中class定义a 或函数定义的函数时,会发生同样的情况instance.
在您的代码中,您只定义一个merge函数,并且不导入任何内容,因此代码文件可能应该如下所示:
module Merge(merge) where
merge::[a] -> [a] -> [a]
merge xs [] = xs
merge [] ys = ys
merge (x:xs) (y:ys) = x:y:(merge xs ys)Run Code Online (Sandbox Code Playgroud)