MCPcopy
hub / github.com/fluentpython/example-code-2e / add_globals

Function add_globals

18-with-match/lispy/original/lispy.py:153–173  ·  view source on GitHub ↗

Add some Scheme standard procedures.

(self)

Source from the content-addressed store, hash-verified

151 else: raise w
152
153def add_globals(self):
154 "Add some Scheme standard procedures."
155 import math, cmath, operator as op
156 self.update(vars(math))
157 self.update(vars(cmath))
158 self.update({
159 '+':op.add, '-':op.sub, '*':op.mul, '/':op.truediv, 'not':op.not_,
160 '>':op.gt, '<':op.lt, '>=':op.ge, '<=':op.le, '=':op.eq,
161 'equal?':op.eq, 'eq?':op.is_, 'length':len, 'cons':cons,
162 'car':lambda x:x[0], 'cdr':lambda x:x[1:], 'append':op.add,
163 'list':lambda *x:list(x), 'list?': lambda x:isa(x,list),
164 'null?':lambda x:x==[], 'symbol?':lambda x: isa(x, Symbol),
165 'boolean?':lambda x: isa(x, bool), 'pair?':is_pair,
166 'port?': lambda x:isa(x,file), 'apply':lambda proc,l: proc(*l),
167 'eval':lambda x: eval(expand(x)), 'load':lambda fn: load(fn), 'call/cc':callcc,
168 'open-input-file':open,'close-input-port':lambda p: p.file.close(),
169 'open-output-file':lambda f:open(f,'w'), 'close-output-port':lambda p: p.close(),
170 'eof-object?':lambda x:x is eof_object, 'read-char':readchar,
171 'read':read, 'write':lambda x,port=sys.stdout:port.write(to_string(x)),
172 'display':lambda x,port=sys.stdout:port.write(x if isa(x,str) else to_string(x))})
173 return self
174
175isa = isinstance
176

Callers 1

lispy.pyFile · 0.85

Calls 6

to_stringFunction · 0.85
evalFunction · 0.70
expandFunction · 0.70
loadFunction · 0.70
updateMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected