2016-10-25 6 views
7

ここに私のコードは、*を再定義しようとしています。 *は以前に隠してたときにのみ達成することができ:インポート時に演算子をどのように非表示にしますか?

import Prelude hiding (*) 

(*) :: Int -> Int -> Int 
x * 0 = 0 
x * y = x + x*(y-1) 

しかし、それは動作しません:

$ ghci test.hs 

GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help

test.hs:1:24: error: parse error on input ‘*’

Failed, modules loaded: none.

Prelude>

私は他の機能を隠すことができて:

import Prelude hiding (read) 

import Prelude hiding (show) 

ことながら、オペレータのために*+、のように動作しません。

どうすれば非表示にできますか?あなたは、関数のタイプにghciを照会する方法

答えて

16

リコール:オペレータについて

:t read 
:t show 

:t +をご入力してください?

いいえ、解析エラーが発生します。

あなたは:t (+)です。

あなたのケースについては、追加のかっこでそれを隠す:((*))

import Prelude hiding ((*)) 

(*) :: Int -> Int -> Int 
x * 0 = 0 
x * y = x + x*(y-1) 
関連する問題