如何将功能放入模块?

时间:2011-10-20 22:06:39

标签: haskell module main

我有这个功能:

isSortedUp x y z = if x>y && y>z then True else False

我想把它放到模块UP中。

这个函数我想放入模块中:

isSortedDown x y z = if x<y && y<z then True else False

然后在主程序中调用它们:

import System.Environment
import Up
import Down
main = do
  args<-getArgs
  let a = args !! 0
  let b = args !! 1
  let c = args !! 2
  if (isSortedUp a b c) || (isSortedDown a b c) then return (True) else return(False)

如何拨打和调用此功能?

新代码 Main.hs

import System.Environment
import Up
import Down  
main = do
  args<-getArgs
  let a = args !! 0
  let b = args !! 1
  let c = args !! 2
  if (isSortedUp a b c) || (isSortedDown a b c) then return(True) else return(False)

Up.hs

module Up (isSortedUp) where
isSortedUp x y z = if x>y && y>z then return(True) else return(False)

Down.hs

module Down (isSortedDown) where
isSortedDown x y z = if x<y && y<z then return(True) else return(False)

2 个答案:

答案 0 :(得分:3)

Haskell中的模块按文件分解。因此,要将isSortedDown放入其自己的模块Down中,您需要创建一个新文件Down.hs并使用module声明将其删除内容:

module Down (isSortedDown) where

isSortedDown x y z = if x<y && y<z then True else False

然后,提供您的Main模块可以访问此模块(例如,在同一目录中),它应该导入并可以访问。

有关Haskell中模块的更多信息,请阅读:

答案 1 :(得分:1)

请注意,您可以简单地写一下:

isSortedDown x y z = x<y && y<z