MalVal *EVAL(MalVal *ast, GHashTable *env) { if (!ast || mal_error) return NULL; //g_print("EVAL: %s\n", _pr_str(ast,1)); if (ast->type != MAL_LIST) { return eval_ast(ast, env); } if (!ast || mal_error) return NULL; // apply list //g_print("EVAL apply list: %s\n", _pr_str(ast,1)); if (_count(ast) == 0) { return ast; } MalVal *a0 = _nth(ast, 0); assert_type(a0, MAL_SYMBOL, "Cannot invoke %s", _pr_str(a0,1)); MalVal *el = eval_ast(ast, env); if (!el || mal_error) { return NULL; } MalVal *(*f)(void *, void*) = (MalVal *(*)(void*, void*))_first(el); //g_print("eval_invoke el: %s\n", _pr_str(el,1)); return f(_nth(el, 1), _nth(el, 2)); }
void YearSettingsWidget::onDstEndDayWeekMonthChanged() { std::string s_dayOfWeek; std::string s_monthOfYear; int i_nthDayOfWeekInMonth = m_endWeekBox->currentIndex(); s_dayOfWeek = m_endDayBox->currentText().toStdString(); s_monthOfYear = m_endMonthBox->currentText().toStdString(); NthDayOfWeekInMonth _nth(i_nthDayOfWeekInMonth + 1); DayOfWeek _dayOfWeek = dayOfWeek(s_dayOfWeek); MonthOfYear _monthOfYear = monthOfYear(s_monthOfYear); emit dstEndDayOfWeekAndMonthChanged(_nth.value(), _dayOfWeek.value(), _monthOfYear.value()); }