Results 5 comments of haruka matsumoto

ご報告ありがとうございます。 うわ〜これはひどいですね(><) ``` あと、関連して、上のプログラムでは x の型や f の返り値の型が test によって制限されていると思いますが、変化していない(コネクタの形が変化しない)ように見えます。そういう仕様でしたっけ。 ``` これは、let多相を入れているためかと思います。 ``` type_expr.js の 1180 行目で t1.label != t2.label となり例外があがっているようです。 ``` これは、 `let test = f 0 = "a"`...

たしかにです。 たとえば、今「Function」というカテゴリにmatchブロックがいますが([https://github.com/harukamm/ocaml-blockly/blob/master/demos/typed/dev.html#L75](https://github.com/harukamm/ocaml-blockly/blob/master/demos/typed/dev.html#L75))、これは違うだろうなぁという気がしていました。笑 あとは、必要かどうかわからないのですが、各ブロックにカーソルを合わせたときに出現するツールチップにブロックの機能の説明を書くとかもあるといいのかなと思いました。 今は一部のブロックにしか書けていないです。例えば、sndブロックだとこんな感じです。→[https://github.com/harukamm/ocaml-blockly/blob/master/blocks/typed_blocks.js#L674](https://github.com/harukamm/ocaml-blockly/blob/master/blocks/typed_blocks.js#L674)

報告ありがとうございます。 実装してみました。確認お願いします。 ちなみにですが、今は定義ブロックを変に組み替えたりしないことを仮定しています。 ``` type a = { field: int } match ? with | { field: x } -> x + x ``` とかしたあとに、record定義のブロックにある int のブロックを外したときの挙動はまだどうするか考えられてないです。。今はとりあえずクラッシュします。(笑)

ご報告ありがとうございます! 異なる変数にすることに関しては、どっちのタイミングが適切だと思いますか。 1. パターンお砂場のサイドメニューの時点で 2. マッチブロックに接続する瞬間に 実装的には 2. のほうが楽かなと思います。 同じ名前のパターン変数にしようとしたら拒否するのは、大事ですね。実装的には、[https://github.com/harukamm/ocaml-blockly/blob/master/core/bound_variables.js#L396](https://github.com/harukamm/ocaml-blockly/blob/master/core/bound_variables.js#L396) この関数をいじることになるかなあという見通しです。

こんちは、ありがとうございます! ウワーこれはたしかにひどいです。 もともとブロックの形が適当なので、可読性がひどいのはもともとですがもっとひどいですね。 可変長のブロックを用意しておくの良いと思います。デフォルトで左結合ということにしておけば、思い違いも起きなそうだと思います。 ただ、歯車アイコンの説明がないと、その機能に気づきにくそうではあります。 でも画像を見る限りひどいので、可変長ブロック追加には賛成です。 (31日まで手元にPCがないので実装は遅れそうです。。)