challenge ローカル変数の一覧を取得

リフレクション系のお題の続編です。 ローカル変数の内容を取得して連想配列(ハッシュ、辞書など)に詰める コードを書いてください。

Pythonで表現すると、下のコードの???部分を埋めることになります。

>>> def foo():
	x = 1
	y = "hello"
	???
	return result

>>> foo()
{'y': 'hello', 'x': 1}

Posted feedbacks - PostScript

PostScript です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/foo{
    2 dict             % 2 個要素が入る辞書をオペランドスタックに置く
    begin              % スタックトップの辞書を辞書スタックに置く
        /x 1 def       % 辞書スタックのトップの辞書に、キー x 値 1 を登録する
                  % ここで x とすると、辞書スタックのトップからキー x を探し
                  % その値 (今の場合 1) をオペランドスタックに置く
                  % つまり、x を変数として扱える
        /y (hello) def
        currentdict    % 辞書スタックのトップの辞書をオペランドスタックに置く
    end                % 辞書スタックから辞書を1個除く
}def

foo        % 辞書がオペランドスタックに置かれる
% オペランドスタックの辞書の中身を表示
{
    exch
    (name: )print ==
    (value: )print ==
    (\n)print
}forall

% 以下は出力
name: /y
value: (hello)

name: /x
value: 1

Index

Feed

Other

Link

Pathtraq

loading...