?- ['DCG.prolog']. % DCG.prolog compiled 0.00 sec, 0 bytes Yes ?- evaluate([5, +, 5, -, 7, *, pi]). Result is -11.9911 Yes ?- evaluate([2, ^, 3, ^, 4]). Result is 2417851639229258349412352 Yes ?- evaluate([2, ^, '(', 3, ^, 4, ')']). Result is 2417851639229258349412352 Yes ?- evaluate(['(', 2, ^, 3, ')', ^, 4]). Result is 4096 Yes ?- assign(cat, 2). cat = 2 Yes ?- evaluate([cat, ^, 2], X). X = 4 ?- evaluate([22, '/', 7], X), assign(pi2, X). pi2 = 3.14286 X = 3.14286 ?- evaluate([tan, pi2]). Result is 0.00126449 Yes ?- assign(dog, [2, '^', 0.5]). dog = 1.41421 Yes ?- evaluate([dog, ^, 2]). Result is 2.0 Yes