Skip to content

Expressions

Operators

Boolean Operators

LisPy version

(and expr1 expr2 ...)
Python version
expr1 and expr2 and ...

Binary Operators

LisPy version

(+ n1 n2 ...)
Python version
n1 + n2 + ...

Unary Operators

LisPy version

(- n)
Python version
-n

Comparison Operators

==

LisPy version

(== expr1 expr2 expr3 ...)
Python version
expr1 == expr2 == expr3 == ...

>

Python version

(> expr1 expr2 expr3 ...)
LisPy version
expr1 > expr2 > expr3 > ...

:=

LisPy version

(:= name value)
Python version
(name := value)

lambda

LisPy version

(lambda [arg1 arg2 ...] body)
# or syntactic sugar fn
(fn [arg1 arg2 ...] body)
Python version
lambda arg1, arg2, ...: body

if expression

LisPy version

(ife test then other)
Python version
then if test else other

Collection Literals

List

LisPy version

[item1 item2 ...]
Python version
[item1, item2, ...]

Dictionary

LisPy version

{key1 value1 key2 value2 ...}
Python version
{key1: value1, key2: value2, ...}

Set

LisPy version

{, item1 item2 ...}
Python version
{item1, item2, ...}

Tuple

LisPy version

(, item1 item2 ...)
Python version
(item1, item2, ...)

Comprehensions

List Comprehension

LisPy version

[(* 2 x) for x in (range 10) if (== (% x 2) 0)]
Python version
[2 * x for x in range(10) if x % 2 == 0]

Dictionary Comprehension

LisPy version

{(* 2 x) (* 3 x) for x in (range 10) if (== (% x 2) 0)}
Python version
{2 * x: 3 * x for x in range(10) if x % 2 == 0}

Set Comprehension

LisPy version

{, (* 2 x) for x in (range 10) if (== (% x 2) 0)}
Python version
{2 * x for x in range(10) if x % 2 == 0}

Generator Expression

LisPy version

((* 2 x) for x in (range 10) if (== (% x 2) 0))
Python version
(2 * x for x in range(10) if x % 2 == 0)

await

LisPy version

(await expr)
Python version
await expr

yield

LisPy version

(yield expr)
Python version
yield expr

yield from

LisPy version

(yield-from expr)
Python version
yield from expr

Function Call

LisPy version

(func-name arg1 arg2 *args :kwarg1 value1 :kwarg2 value2 **kwargs)
Python version
func_name(arg1, arg2, *args, kwarg1=value1, kwarg2=value2, **kwargs)

Formatted String Literals

LisPy version

(= name "World")
f"Hello, {(* 2 name)}!"
Python version
name = "World"
f"Hello, {2 * name}!"

Attribute

LisPy version

(. obj attr)
Python version
obj.attr

Method Call

LisPy version

(.method-name obj arg1 arg2 *args :kwarg1 value1 :kwarg2 value2 **kwargs)
Python version
obj.method_name(arg1, arg2, *args, kwarg1=value1, kwarg2=value2, **kwargs)

Subscription

Simple Subscription

LisPy version

(sub obj i1 i2)
Python version
obj[i1][i2]

Tuple Subscription

LisPy version

(sub obj (, i1 i2 ...))
Python version
obj[i1, i2, ...]

Slice

Slice Subscription

LisPy version

(sub obj [: start stop step])
Python version
obj[start:stop:step]

Slice with Emptiness

LisPy version

(sub obj [: start])
(sub obj [: _ stop])
(sub obj [: start _ step])
Python version
obj[start:]
obj[:stop]
obj[start::step]