Lisp Interface¶
EXAMPLES:
sage: lisp.eval('(* 4 5)')
'20'
sage: a = lisp(3); b = lisp(5)
sage: a + b
8
sage: a * b
15
sage: a / b
3/5
sage: a - b
-2
sage: a.sin()
0.14112
sage: b.cos()
0.2836622
sage: a.exp()
20.085537
sage: lisp.eval('(+ %s %s)'%(a.name(), b.name()))
'8'
One can define functions and the interface supports object-oriented notation for calling them:
sage: lisp.eval('(defun factorial (n) (if (= n 1) 1 (* n (factorial (- n 1)))))')
'FACTORIAL'
sage: lisp('(factorial 10)')
3628800
sage: lisp(10).factorial()
3628800
sage: a = lisp(17)
sage: a.factorial()
355687428096000
- AUTHORS:
– William Stein (first version) – William Stein (2007-06-20): significant improvements.
-
class
sage.interfaces.lisp.
Lisp
(maxread=None, script_subdirectory=None, logfile=None, server=None, server_tmpdir=None)¶ Bases:
sage.interfaces.expect.Expect
EXAMPLES:
sage: lisp == loads(dumps(lisp)) True
-
console
()¶ Spawn a new Lisp command-line session.
EXAMPLES:
sage: lisp.console() #not tested ECL (Embeddable Common-Lisp) ... Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya Copyright (C) 1993 Giuseppe Attardi Copyright (C) 2000 Juan J. Garcia-Ripoll ECL is free software, and you are welcome to redistribute it under certain conditions; see file 'Copyright' for details. Type :h for Help. Top level. ...
-
eval
(code, strip=True, **kwds)¶ EXAMPLES:
sage: lisp.eval('(+ 2 2)') '4'
-
function_call
(function, args=None, kwds=None)¶ Calls the Lisp function with given args and kwds. For Lisp functions, the kwds are ignored.
EXAMPLES:
sage: lisp.function_call('sin', ['2']) 0.9092974 sage: lisp.sin(2) 0.9092974
-
get
(var)¶ EXAMPLES:
sage: lisp.set('x', '2') sage: lisp.get('x') '2'
-
help
(command)¶ EXAMPLES:
sage: lisp.help('setq') Traceback (most recent call last): ... NotImplementedError
-
kill
(var)¶ EXAMPLES:
sage: lisp.kill('x') Traceback (most recent call last): ... NotImplementedError
-
set
(var, value)¶ Set the variable var to the given value.
EXAMPLES:
sage: lisp.set('x', '2') sage: lisp.get('x') '2'
-
version
()¶ Returns the version of Lisp being used.
EXAMPLES:
sage: lisp.version() 'Version information is given by lisp.console().'
-
-
class
sage.interfaces.lisp.
LispElement
(parent, value, is_name=False, name=None)¶ Bases:
sage.structure.element.RingElement
,sage.interfaces.expect.ExpectElement
-
class
sage.interfaces.lisp.
LispFunction
(parent, name)¶
-
class
sage.interfaces.lisp.
LispFunctionElement
(obj, name)¶
-
sage.interfaces.lisp.
is_LispElement
(x)¶ EXAMPLES:
sage: from sage.interfaces.lisp import is_LispElement sage: is_LispElement(lisp(2)) True sage: is_LispElement(2) False
-
sage.interfaces.lisp.
lisp_console
()¶ Spawn a new Lisp command-line session.
EXAMPLES:
sage: lisp.console() #not tested ECL (Embeddable Common-Lisp) ... Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya Copyright (C) 1993 Giuseppe Attardi Copyright (C) 2000 Juan J. Garcia-Ripoll ECL is free software, and you are welcome to redistribute it under certain conditions; see file 'Copyright' for details. Type :h for Help. Top level. ...
-
sage.interfaces.lisp.
reduce_load_Lisp
()¶ EXAMPLES:
sage: from sage.interfaces.lisp import reduce_load_Lisp sage: reduce_load_Lisp() Lisp Interpreter