`+ `1000`*O `+ `100`*N `+ `10`*E `+ Y, FD.BND); branch (sp, v, FD.B_SIZE_MIN, FD.B_MIN); {S,E,N,D,M,O,R,Y} end It looks a lot nicer in a language like Oz , which has language support for logic variables and so forth. proc {Money Root} S E N D M O R Y in Root =