I'm trying to create a recursive function to evaluate the expressions within a list. The function uses eval() to evaluate the list. Like a lisp interpreter but very limited. What I'm looking for is a function to recursively traverse the list and provide answers in place of lists, so that ... Example = ['add', ['sub', 5, 4], ['mul', 3, 2]] Becomes: Example = ['add', 1, 6] Becomes: Example = 7 *Functions are defined in the script
The code I currently have, which isn't pretty (bottom), doesn't work because it doesn't return the value of the evaluated list. But I can't figure out how to do that. Any help would be greatly appreciated. Jack Trades def recursive(tree): if type(tree[1]) != type([]) and type(tree[2]) != type([]): eval(a[0]+'('+str(tree[1])+','+str(tree[2])+')') if type(tree[2]) == type([]): recursive(tree[2]) if type(tree[1]) == type([]): recursive(tree[1]) -- http://mail.python.org/mailman/listinfo/python-list