[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
435(1): デフォルトの名無しさん [sage] 2011/11/09(水) 21:55:59.53 AAS
代数データ型のラベルの名前って、みなさんどうしてますか?
(ラベルでなくともアクセス関数を自作しても本質的には同じ事です)
例えばの話でブロック崩しを作ってるとして、
ボールの状態を表すための情報が要りますよね
まぁざっと、位置ベクトル、速度ベクトル、あとはボールの半径を盛り込むとしましょう
data Ball = Ball
{ ballPos :: Vector2
, ballVel :: Vector2
, ballRad :: Double }
私はこうやって、位置を表す Pos や速度を表す Vel などに、接頭辞として
必ずそのデータ型の型構築子(値構築子ではなく)の名前を付けるようにしています
と言うのも、ではボールの他にバーやブロックの情報はどうなるかと言えば、
こちらも位置を表す情報は必要で、他にも重なる部分がいくつか出てきます
同じ pos という関数名を使い回すことが文法上できないので、
上記の方法でやるなら名前の中で何らかの区別をしなければならず、
であるなら変に省略文字で区別するよりは、もうフルネームで区別した方がマシだろ
という判断です
このように、複数のデータ型で同じ意味の情報を扱う場合のラベル名(アクセス関数名)は、
みなさんどうしてるのでしょうか
共通の情報は型クラスに追いやって、インスタンス化してるのでしょうか
その場合は、その関数の引数として対象のデータ型の値が要りますね
439(1): デフォルトの名無しさん [sage] 2011/11/09(水) 23:04:27.78 AAS
>>435
> その場合は、その関数の引数として対象のデータ型の値が要りますね
これはデータ型に直接ラベルを定義しても同じ事でした、すいません
>>436436(1): デフォルトの名無しさん [sage] 2011/11/09(水) 22:01:28.32 AAS
俺も型名やその省略形を接頭辞にする
やはり、そうしますか
>>437437(1): デフォルトの名無しさん [sage] 2011/11/09(水) 22:54:34.31 AAS
ぽこぽこサブモジュールを作る。
サブモジュールをどのように作って、どのようにアクセスさせているのでしょうか
モジュールを分けても、データ型のその情報にアクセスする為には関数が必要で、
当然その関数は各モジュールからエクスポートさせるのですよね
ボールの位置、バーの位置、ブロックの位置などの情報に対するアクセス関数の
名前のバッティングはどうしてるのでしょうか
もしかして、各モジュールをインポートする時に as で別名を与えてるのでしょうか
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.037s