アプリ版:「スタンプのみでお礼する」機能のリリースについて

lilfesという言語のソースにassoc_new <- [pred].なるものがあるのですが、これはオブジェクト思考でいうインスタンス化のようなものですか?
以下ソースの一部
:- 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").

このソースをロードすると
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
てな警告が出てしまいます。
アドバイスお願いします。

A 回答 (3件)

> lilfesという言語のソースにassoc_new <- [pred].なるものがあるのですが、



提示されたソースの中にはないようですが?

> これはオブジェクト思考でいうインスタンス化のようなものですか?

おそらく違います。
assoc_new という述語を assoc_new <- [pred]. で型定義する前に :- の右辺に使ったために警告が出ているだけに見えます。

参考: http://www-tsujii.is.s.u-tokyo.ac.jp/lilfes/manu … の「型定義」の項
「プログラム中で使用する型(定数及び述語)は予め、 supertype(親の型)とともに型定義がされている必要があります。」
    • good
    • 0
この回答へのお礼

ありがとうございます!!
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
これは消えてくれませんでした・・。
これはなぜなのでしょう?

お礼日時:2009/07/15 07:12

> 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, …… . という形の確定節が必要なのではないかと思われます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/15 12:18

「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行目ってどれ? ソースが短いならわざわざ隠すことなく全日見せてほしいな.

この回答への補足

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%% 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>"),!
),!.

補足日時:2009/07/14 20:27
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/14 22:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!