• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:prologのような言語 lilfes)

lilfes言語のassoc_newとは?

このQ&Aのポイント
  • lilfes言語でのassoc_newは、オブジェクト思考におけるインスタンス化と同様の機能を持ちます。
  • assoc_newは、意味素性を管理するための関数であり、意味情報を取り出したりセットしたりすることができます。
  • しかし、assoc_newを使用する際には注意が必要であり、正しく定義されていない場合に警告が表示されることがあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

> lilfesという言語のソースにassoc_new <- [pred].なるものがあるのですが、 提示されたソースの中にはないようですが? > これはオブジェクト思考でいうインスタンス化のようなものですか? おそらく違います。 assoc_new という述語を assoc_new <- [pred]. で型定義する前に :- の右辺に使ったために警告が出ているだけに見えます。 参考: http://www-tsujii.is.s.u-tokyo.ac.jp/lilfes/manual/chap4.ja.html の「型定義」の項 「プログラム中で使用する型(定数及び述語)は予め、 supertype(親の型)とともに型定義がされている必要があります。」

yamada11
質問者

お礼

ありがとうございます!! assoc_new <- [pred].を付け加えたら Warning: 'common:sem:sem_variable':assoc_new <- [pred]. is assumed implicitly at /usr/local/Kura/common/sem/sem_variable.lil:24 は出なくなりましたが Run-time Warning: no goal of 'common:sem:sem_variable':'assoc_new/1' is defined これは消えてくれませんでした・・。 これはなぜなのでしょう?

その他の回答 (2)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

> Run-time Warning: no goal of 'common:sem:sem_variable':'assoc_new/1' is defined > これは消えてくれませんでした・・。 > これはなぜなのでしょう? assoc_newが述語であることだけを型定義しても、その述語の内容がどこにも定義されていないからです。つまり、 assoc_new(X). とか assoc_new(X) :- 構造1, 構造2, …… . という形の確定節が必要なのではないかと思われます。

yamada11
質問者

お礼

ありがとうございます。どうやらlilfesについて(もしくはprologに関して)もっと勉強しなければ前に進まないとわかりました。 lilfesに関してはサイトはあるにはあるのですが、私には難解で難しく、たびたびまたこちらで質問することになりそうです・・・。 ありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「lilfesという言語のソースにassoc_new <- [pred].なるものがある」と書かれてますけど, これは「LiLFeS の処理系のソース」ではないですよね? 「LilFeS 言語で書いたソース」のことですよね? でも, 自分で書いたものなら当然自分で理解できてないと困ると思うんだけどなぁ. エラーメッセージに 「at /usr/local/Kura/common/sem/sem_variable.lil:24」 と出ているということは, ソースァイル /usr/local/Kura/common/sem/sem_variable.lil の 24行目が怪しいってことだ. その 24行目ってどれ? ソースが短いならわざわざ隠すことなく全日見せてほしいな.

yamada11
質問者

お礼

補足にソースをのせました これは私が作成したソースではなくとあるフリーソフトのソースです。 アドバイスお願いします。 lilfesはprolog likeなものだそうで、prologに詳しい方、もしや分かるのではないでしょうか?

yamada11
質問者

補足

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% %%% Name: s**_variable.lil %%% Author: Iwa**** To**** <t_i**@p****.ai.kyutech.ac.jp> %%% Id: $Id: s**_variable.lil,v 1.2 2002/12/18 00:21:15 t_iwa Exp $ %%% Purpose: 意味素性関係の変数を扱う. %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% :- module("common:sem:sem_variable"). :- module_interface. sem_init <- [pred]. sem_get <- [pred]. sem_set <- [pred]. sem_delete <- [pred]. %% 意味素性を取りだします。 get_sem_features <- [pred]. %% 意味素性をセットします。 set_sem_features <- [pred]. %% 現在の意味情報 :- assoc_new("common:sem:sem_variable:sem"). %% 意味素性の情報 :- assoc_new("common:sem:sem_variable:configuration"). :- module_implementation. sem_init :- !, assoc_new("common:sem:sem_variable:sem"),!. sem_get($MID, $PATH, $VALUE) :- !, assoc_get(("common:sem:sem_variable:sem", [$MID, $PATH]), $VALUE),!. sem_set($MID, $PATH, $VALUE) :- !, assoc_set(("common:sem:sem_variable:sem", [$MID, $PATH]), $VALUE),!. sem_delete($MID, $PATH) :- !, assoc_delete(("common:sem:sem_variable:sem", [$MID, $PATH])),!. %% 登録されている意味素性を取りだす. get_sem_features($SemFutureList) :- !, assoc_get(("common:sem:sem_variable:configuration", "sem_path"), $SemFutureList),!. %% 使用する意味素性を登録する. set_sem_features :- !, ( strtotype("sem", $SEM), type_featurelist($SEM, $LIST), assoc_set(("common:sem:sem_variable:configuration", "sem_path"), $LIST),! ; strprintln("<system_warning>意味素性が設定されていないようです.</system_warning>"),! ),!.

関連するQ&A