Computation as Simulation
It is useful to view computation as simulation, cf.: isomorphism of semigroups.[Preparata, F. P. and Yeh, R. T., Introduction to Discrete Structures, Addison-Wesley, 1973, p. 129.]
Given two semigroups G_1 = [S, °] and G_2 = [T, * ] , an invertible function φ : S → T is said to be an isomorphism between G_1 and G_2 if, for every a and b in S , φ (a ° b) = φ (a) * φ (b)
from which: a ° b = φ ^-1 ( φ (a) * φ (b) )
(defn string+ [x y] (str ; phi inverse (+ ; + in model space (read-string x) ; phi (read-string y)))) ; phi >(string+ "2" "3") "5"