On Fri, 30 Jul 2004 02:23:28 +0900 (JST), Nobuo Yamashita  
<nobsun / sampou.org> wrote:
>> >> 1. wxHaskell 8.0 の Bitmap 管理改善は直接 Bitmap が扱え
>> >> るようにしただけであって Pixel buffer の扱いを改善したようで
>> >> はないようです。
>> >>
>> >> そのため以下の関数で画像の Filter 関数を書こうを書くことはでき
>> >> ません(メモリ管理の都合上プログラムが正常に動かなくなります)が、
>> >
>> > なぜでしょう?なにがどのように書けないのでしょうか?
>>
>> 書こうととしても書くことができませんですね。
>>
>> 関数的には書けているはずなのに、実行しているものがエラーで動かない
>> という話です。
>
> とういことは、ライブラリのバグということですか?

これの以前の形で質問したときにはバグだという話はしてなかったけど、バグ
だと思った方がいいのかな? 尋ねてみます。


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

ああ、そうですね。そういえば確かに。思い込みに取り付かれていたようです。

> 意識するのは、インデックスの方ですかね。たとえば、
> Point x y を Ix のインスタンスであることを宣言するために、
> Ix クラスのメソッド(range,index,inRange,rangeSize)
> の実装をどうするかというときに、Point x y は二次元の構造を
> 持っていることは重要でしょう。

index は Array a b を返して、そのまた index を取るという
形で良いのかな?
調べてみますが、何かうまい例があれば今後のためにもご教示お願い
します。


>> >> 2. SML の以下の定義を Haskell に置き換えるために MultiIndex
>> >> の Hash 関数を定義しようと思っているのですが、何かエレガント
>> >> なアイデアはあるでしょうか?
>> ...
>> key を二つ持つ HashTable のそれぞれに key となるタイプと
>> equal の条件 (hashVal については考えなくていいか)を定義して
>> いるだけです。
>
> key の型が Eq クラスのインスタンスであることを宣言したいということですよ 
> ね?
> だとすると、実際に使われる key の型が Eq クラスのインスタンスであること
> を宣言することになりますから、key の具体的な型を教えてくださいまし。

equal の関数だから、そういうところでいいのかな?
Int と Control.Concurrent の ThreadId です。


> Hash Table をつくりたいということは、Hash Table への要素の出し入れを
> するわけですよね。Monadic にやりたくないということなら、トップレベルの
> 操作関数はぜんぶ、Hash Table を状態変数として引数にとり、返り値は
> 更新された Hash Table を必ず含むタプルで書けばよいと思います。
>
> {-
> ただ、状態の引き回し自身、順序処理なので、これは Monad を使って
> 抽象化して、命令的に書いたほうが、私には「美しい」という気分。
> Data.HashTable が State Monad ではなく、IO モナドにしているのは
> 任意個の HashTable を扱えるようにするためでしょうね。
> Handle のようなものでしょう。たぶん。^^;
> -}

そうですか。これも、自分なりにやってみますが何かうまい例があれば
今後のためにもご教示お願いします。


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