[過去ログ] 関数型プログラミング言語Haskell Part7 (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
828(1): 819 2007/08/26(日)15:34 AAS
すいません。また教えてください。
haskellは演算子を定義できるそうですが、Pointに+を定義しようとしたらコンパイルエラーになりました。
どうも、数値の+とかぶっているから駄目ぽいのですが回避する方法はあるでしょうか。
なお演算子を+++にしたら動きましたが、見た目がダサいので何とか+を使いたいです。
============ソース===========
data Point = Point_new { x :: Int , y :: Int }
deriving ( Show )
(+) :: Point -> Point -> Point
a + b = Point_new ((x a)+(x b)) ((y a)+(y b))
main = putStrLn $ show $ ((Point_new 3 4 ) + (Point_new 5 7))
省13
830: 2007/08/26(日)16:32 AAS
>>828
そのソースなら、+の代わりにMain.+やPrelude.+と書いて
曖昧性を除けば良い。面倒だけど。
自分で+を定義せずにPrelude.+を拡張するなら>>829の通りだけど、
乗算が定義されていない型をNumのインスタンスと宣言しないといけない。
Haskellの弱点の一つだな。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.172s*