On Thu, 29 Jul 2004 21:40:58 +0900 (JST), Nobuo Yamashita  
<nobsun / sampou.org> wrote:

>> インデックスを使うデータ型について二つ質問があります。
>
> shelarcy さんの言うインデックスというのは、
> Ix クラスのデータ型と思っていいですか?

そうじゃないです。インデックスを使ってデータを引き出すデータ型一般
のことです。


> Haskell では Ix を使うデータ型といえば、Array ですよね。
>
>> 1. wxHaskell 8.0 の Bitmap 管理改善は直接 Bitmap が扱え
>> るようにしただけであって Pixel buffer の扱いを改善したようで
>> はないようです。
>>
>> そのため以下の関数で画像の Filter 関数を書こうを書くことはでき
>> ません(メモリ管理の都合上プログラムが正常に動かなくなります)が、
>
> なぜでしょう?なにがどのように書けないのでしょうか?

書こうととしても書くことができませんですね。

関数的には書けているはずなのに、実行しているものがエラーで動かない
という話です。


>> 新たに pixelBufferCreate と pixelBufferDelete が加わっ
>> たため、Point x y をインデックスとし Int を格納するデータ型
>> として定義すればなんとかなりそうな気がします。……が、Haskell
>> で Multiarray ってありましたっけ? もしくはどのように定義す
>> ればよいでしょうか?
>
> Multiarray って何でしょうか?多次元配列という意味ではないですよね?

あっ、そうです多次元配列です。Boost の用語に毒されてますね。



>> 2. SML の以下の定義を Haskell に置き換えるために MultiIndex
>> の Hash 関数を定義しようと思っているのですが、何かエレガント
>> なアイデアはあるでしょうか?
>
> MultiIndex の Hash 関数とはどんなものなのでしょう。
>
> 私はSMLは全くわからないです。
>
> SML でのデータ構造は、何を表現するデータ型でしょう?
> 何をどうする為のデータ構造ですか?
>
> 何がやりたいのか説明があると少しはわかるかも。。。
> あるいは Haskell で書いたコードがあれば少しはわかるかも。。。

http://www.cs.cornell.edu/courses/cs312/2001sp/handouts/nj-hash.pdf

の Hash2TableFn の説明が分かりやすいかな?
key を二つ持つ HashTable のそれぞれに key となるタイプと
equal の条件 (hashVal については考えなくていいか)を定義して
いるだけです。


>> Data.HashTable の上に Monad を使って定義することもできま
>> すが、そうするとコードが命令型っぽくなって美しくありません。
>
> どのように定義しましたか?それを見ると何がやりたいのか分るかも。。。

ああ、まだ考えているだけで定義してません。


-- 
shelarcy <shelarcy / capella.freemail.ne.jp>
http://page.freett.com/shelarcy/