メソッド名一覧の表示
Posted feedbacks - Scheme
GaucheではCommonLispと同様に、メソッドはクラスでなく総称関数に所属します。 ここではモジュールの中から探してみることにします。 使い方の例: (define-module foo (define (test_1) (print 1)) (define (test_2) (print 2)) (define test_3 "I'm variable!") (define (test_4) (print 4))) (call-tests (find-module 'foo))
1 2 3 4 5 6 7 | (define (call-tests module)
(hash-table-for-each (module-table module)
(lambda (k v)
(and-let* ([ (#/^test_/ (x->string k)) ]
[val (global-variable-ref module k)]
[ (procedure? val) ])
(val)))))
|


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