nobsun です

> ところで pOR が定義されていない、とエラーが出てしまうのですが
> これは標準の関数ではないですよね??

あっ、そうです。述語のコンビネータ関数として以下のように定義して
結構よく使っています。

\begin{code}

infixr 3 `pAND`, `pNAND`
infixr 2 `pOR`,  `pXOR`

pOR,pAND,pXOR,pNAND :: (a -> Bool) -> (a -> Bool) -> (a -> Bool)

pOR   p q x = if p x then True else q x
pXOR  p q x = if p x then not (q x) else q x
pAND  p q x = if p x then q x  else False
pNAND p q x = if p x then not (q x) else True
pNOR  p q x = if p x then False else not (q x)

\end{code}

--
Nobuo Yamashita                 mailto:nobsun / sampou.org
  I love programming.           http://www.sampou.org/
  I love pencil puzzles.        http://www.puzzle.jp/

--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/