реализовать обычный калькулятор (инфиксный):
- ввод с stdin или командной строки
- умножение, сложение, деление, целое деление, остаток, вычитание, степень
- инфиксная нотация (оператор между операндов)
- скобки
- переменные (присваивание, использование)
- набор предопределенных функций (sin, cos, sqrt, log, exp, abs, mod)
- набор предопределенных констант (M_PI, M_E, EPSILON)
- разумная обработка исключительных ситуаций (1/0 ; log(-1) и т.д.)
- список выражений (;)
- условный (тернарный) оператор (или условная функция IF(условие, в1, в2) )
лямбда-выражение с замыканием и первоклассные функции, пожалуй, не требуются...