parsing

text => lextical analysis => tokens => syntactic analysis => expression

1
2
3
'(+ 1'  
' (- 23)'
' (* 4 5.6))'
1
2
3
 '(', '+', 1
'(', '-', 23, ')'
'(', '*', 4, 5.6, ')', ')'
1
Pair('+', Pair(1, ...))

reduce

reduce(, , …)

pass in the parameters(maybe in the form of a list) and apply them to the function