Я рекомендовал бы использовать Qt.
существует лицензия с открытым исходным кодом, а также коммерческая лицензия.
Ваша функция продукта имеет небольшой недостаток:
(product + 4 5)
возвращает 120, если правильный ответ - 20. Причина в следующем:
(product-iter 1 1) should be (product-iter lo 1)
При вызове product-iter
в функции product
он выполнит
(* 1 (фактор 1))
прямо в первой итерации, которая будет оцениваться как 0, потому что (фактор 1)
равен 0. Следовательно, общий продукт также будет равен 0.