Как поставить функцию в модуль? - PullRequest
1 голос
/ 21 октября 2011

У меня есть функция:

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 ]

3 голосов
/ 21 октября 2011

Модули в Haskell разбиты по файлам.Таким образом, чтобы поместить isSortedDown в его собственный модуль Down, вы должны создать новый файл Down.hs и поместить его содержимое внутрь с объявлением module:

module Down (isSortedDown) where

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

Затем, предоставив свой *Модуль 1008 * имеет доступ к этому модулю (например, в том же каталоге), он должен импортироваться и быть доступным.

Подробнее о модулях в Haskell читайте:

1 голос
/ 21 октября 2011

Обратите внимание, что вы можете написать просто:

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