- functions can take string arguments (i.e. variable names that may be undefined) - set(<varname>, <value>) sets a variable to a user-defined value - any userdata can be stored via expr_set_userdata() and retrieved via expr_get_userdata(); also accessible to functions - functions gain access to the expr instance and consequently all of its variables including userdata
My third attempt at a CLI calculator. Supports functions, variables, implicit multiplication and a lot of customization options. Under 1000 LoC. Can be built with or without libreadline.