Closed ksakam closed 3 years ago
オペレータの拡張に関して、午前の結論(原案)についてあらためて議論した。
日時: 6/11(木)18:30-19:30 (於:M-cube121) 参加: 天野氏、坂本(記)
議事内容: 以下の方向で再検討し、次回レビューにて検討結果を議論する(6/19)。
・{}の意味の見直し
(原案) {bind("X(Y),P(Q,R)"[1],$#1[2],"MM,KG"[1])}A[]
=> 午前の結論
(改善案) {bind({X(Y),P(Q,R)}[1],$#1[2],{MM,KG}[1])}A[]
原案では、{}内をヘッド化するため"~"によって文字列化したが、以下の懸案あり。 [懸案]
※ 以下を考慮の上、改善案の方向で検討する。 ・{}はヘッド化の演算子とする。 ・{}の意味の明確化要 ヘッド全体を{}で囲むのか、{}で囲んだ部分は他の構文要素と連結してヘッドの一部とできるのか。 => 後者 ・ヘッド内構文要素の順番は従来通り(ラベル、レファレンス、オペレータ、ネーム) ・オペレータに対して、必ずしも{}で囲む必要はないかもしれない。ただし、オペレータとネームは、ヘッドの一部として「連結可能」としたうえでこれらの境界は識別できる必要がある。 => ()と同様、[]や{}のdelimiter化を復活させる話も出たが、「連結可能」に反しそうなので取りやめ。 ・実行効率に関して、{}内の遅延評価(必要になった時点でオンデマンドで評価を実行)の必要性を検討要 ・オペレータを示す$を復活の方向 (例) $bind$
日時: 6/11(木)10:00-11:30 (於:M-cube116) 参加: 天野氏、坂本(記) 資料: (打合結果反映済) cq-code-review-20200611-after.pptx
議事内容
・一般形 カリー化と関連
‘{‘<op>’(‘<T>,...,<T>’)’’(‘<T>,...,<T>’)’...’}’
=>‘:’
は廃止、各<T>
がパラメータ相当 ・{...}
内はエスケープ扱い(delimiterもheadの一部) => 評価時に{...}
内をparsingする ・referenceはラベル同様言語仕様上の機構 => オペレータ化しない(従来どおり) ・bindのオペレータ化に関して、bind値をファイルからreadする場合はCSVファイルとみなす。 文字列による直接指定の場合は要検討(T式/CSV値両方あり) => 内部でのbind値保持方法にも影響 ・出力時、バインド値は子ノードとして表示(前回案から変更なし) => これがバインドのそもそもの目的複数ファイル事例(列結合) ・in/outの指定は残す ・各例を{}を用いた新形式で書き直す。
環境変数 ・envで指定するのは、環境を記述したenvfileのファイル名 ・envfileの記述形式も、in/out同様T式とする
(次回) 6/19(金)10:00- (於:Mcube-116) [テーマ]今回のオペレータ仕様の検証