interpl

Experiments with intepreters in Prolog
git clone https://ccx.te2000.cz/git/interpl
Log | Files | Refs | README

commit 7b73996cc58b87c021407333c7a9d0a6d09364e6
parent 988f292571cc3109ec5225a8a1176b176db8f6a1
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Sat, 31 May 2025 01:18:45 +0000

Remove unused predicates

Diffstat:
Minterpreter.pl | 49+------------------------------------------------
1 file changed, 1 insertion(+), 48 deletions(-)

diff --git a/interpreter.pl b/interpreter.pl @@ -46,16 +46,6 @@ quoted([quote|Rest], Rest). variable(Exp) :- atom(Exp). -frame_variables(Frame, Variables) :- pairs_keys(Frame, Variables). -frame_values(Frame, Variables) :- pairs_values(Frame, Variables). -add_binding_to_frame(VarName, Value, OldFrame, [VarName-Value|OldFrame]). - -% (enclosing-environment '(((a) . (1)) . ())) => '() -enclosing_environment([_|Env], Env). - -% (first-frame '(((a) . (1)) . ())) => '((a) . (1)) -first_frame([Frame|_], Frame). - % No bindings, no enclosing environment empty_environment([]). @@ -78,20 +68,11 @@ lookup_variable_from_frame([K-V|Rest], VarName, Value) :- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Definitions -% (definition? '(define x 1)) => true -% (definition? '(quote x)) => false -is_definition([define,_,_]). - -%definition_variable([define, VarName, _], VarName). -%definition_value([define, _, Value], Value). - define_variable(VarName, Value, [OldFrame|EnvTail], [[VarName-Value|OldFrame]|EnvTail]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Assignments -%is_assignment(['set!'|_]). - set_variable_value(VarName, Value, OldEnv, NewEnv) :- interp_check(set_variable_value_aux(VarName, Value, OldEnv, NewEnv), unbound_var, VarName). @@ -111,46 +92,18 @@ set_variable_in_frame(VarName, Value, [K-_OldV|OldT], [K-NewV|NewT]) :- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Procedure Construction -% (lambda? '(lambda () 1)) => 1 -is_lambda([lambda, Vars|_]) :- is_list(Vars). - -% (lambda-parameters '(lambda () 1)) => '() -%% (define (lambda-parameters exp) (cadr exp)) -% (lambda-body '(lambda () 1)) => '(1) -%% (define (lambda-body exp) (cddr exp)) - make_procedure(Parameters, Body, Env, proc(Parameters, Body, Env)). -%compound_procedure(proc(_,_,_)). -%(define (compound-procedure? p) -% (tagged-list? p 'procedure)) -%(define (procedure-parameters p) (cadr p)) -%(define (procedure-body p) (caddr p)) -%(define (procedure-environment p) (cadddr p)) - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Application Expressions -%(define (application? exp) (pair? exp)) -is_application([_|_]). -%(define (operator exp) (car exp)) -operator([Operator|_], Operator). -%(define (operands exp) (cdr exp)) -operands([_|Operands], Operands). -%(define (no-operands? ops) (null? ops)) -operands([_|Operands], Operands). -%(define (first-operand ops) (car ops)) -first_operand([_,X|_], X). -%(define (rest-operands ops) (cdr ops)) -rest_operands([_,_|X], X). - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Primitive Procedures %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Eval/Apply -% is_eval_special(quote). +% is_eval_special(quote). % evaluated before variable resolution is_eval_special(define). is_eval_special(lambda). is_eval_special(if).