Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

demo/unif.lmn の num 制約のバグ #49

Open
sano-jin opened this issue Mar 11, 2022 · 0 comments
Open

demo/unif.lmn の num 制約のバグ #49

sano-jin opened this issue Mar 11, 2022 · 0 comments
Labels
very very easy 超簡単.github に慣れるために新入生にやってもらうのが良き.

Comments

@sano-jin
Copy link
Contributor

sano-jin commented Mar 11, 2022

demo/unif.lmn の num 制約のバグ

プログラムの修正自体は非常に簡単にできるので,新入生に github に慣れるためにやってもらうのが良いかも.

概要

lavitの demo/unif.lmn をコンパイルしようとすると以下のエラーが出る

COMPILE ERROR: unary type process context must occur in LHS

原因

s7@@subst(!V,T) :- num(!V,1), ground(T) | lock.

ここで,

num(!V, 1)

としているが,おそらく現仕様だと

num(!V) =:= 1 

としなくてはいけない(テストしてください).

修正案

同上

Discussion

hyperlink に関する仕様は
https://www.ueda.info.waseda.ac.jp/lmntal/index.php?Hyperlinks
にまとめられている.

どうもこれをみた感じ,

$x = num(!H)

で新しい変数(プロセス文脈)に代入するような仕様になっている.

普通の制約だと,すでに $x が定義されていた場合は(代入ではなく)等価性比較ができるようになっている気がするが,どうやら num の場合はそうもいかないようだ?

この問題に関しては,

  1. そもそもどういう仕様にするべきか
  2. (仕様を決めたら)その仕様を周知するべき(公開ページなどで?)
  3. (仕様を決めたら)その仕様をコンパイラ又は実行時処理系に実装するべき

という感じでちゃんと考えようとすると結構色々ある.

lmntal-compiler の issue にも投げておくのが良いかもしれない(必要に応じてやってください).

@sano-jin sano-jin added the very very easy 超簡単.github に慣れるために新入生にやってもらうのが良き. label Mar 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
very very easy 超簡単.github に慣れるために新入生にやってもらうのが良き.
Projects
None yet
Development

No branches or pull requests

1 participant