メソッド名一覧の表示
Posted feedbacks - Prolog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | :- module(target, []).
test_a :- writeln(test_a).
test_b :- writeln(test_b).
test_x(_) :- writeln(test_x).
no_test :- writeln(no_test).
% 指定されたモジュールの'test_'で始まる引数0の述語を全て実行
call_tests(Module) :-
forall(( current_predicate(Module:Predicate/0),
atom_prefix(Predicate, test_)),
Module:Predicate).
:- call_tests(target).
%=> test_a test_b
|

にしお
#3388()
Rating0/0=0.00
「ある与えられたオブジェクトtargetのメソッドのうち、 "test_"で始まるものをすべて呼びだす」というコードを書いてください。 引数に関しては都合のいいように仮定して構いません(全部0個、など)。
メソッドという概念がない言語の場合は、 「複数の関数への参照を持っているようなオブジェクト(たとえばパッケージとかモジュールとか)から"test_"で始まる関数をすべて呼び出す」と読み替えても構いません。
[ reply ]