Математические функции в Scheme (Script-Fu) - Lisp
Формулировка задачи:
Здравствуйте.
Через Script-Fu заинтересовался языком Scheme (как понимаю, это диалект Lisp).
В интернете много материалов для начинающих, но мне пока не удалось найти какое-то более полное описание функций, которые могут пригодиться для практических задач.
В частности, меня интересуют математические функции и, если такие есть, функции преобразования типов.
Например, в Script-Fu для GIMP я на практике столкнулся с ситуацией, когда при изменении размера изображения дробное число (например 10,8) неявно преобразуется в целое путём простого откидывания дробной части (т.е. 10,8 -> 10) а не округления числа до ближайшего целого.
Это заставило меня задуматься над возможностями преобразования чисел: вычисления целой части числа и дробной.
Нет ли каких-то специальных функций для этой цели?
В какой-то теме обсуждения про программы на Lisp я видел в листинге использование функции (mod x 3) для определения делимости значения переменной "x" на число 3. Но ни в Scheme (Guile), ни в Script-Fu мне не удалось воспользоваться этой функцией.
Кроме того, насколько я понимаю, в Scheme (в Guile) есть возможность представлять числа в форме дробей:
Как можно было-бы вычленить отдельно верхнюю и нижнюю части дробей, если они для чего-то нужны?
И ещё, где-то в описании Scheme, мне попадалась информация, о возможности представления комплексных чисел.
Но нигде мне не удалось найти функции для работы с комплексными числами.
PS: может кто-нибудь поделится ссылкой на список всех функций в Scheme с их кратким описанием.
>(/ 10 6) $1 = 5/3
Решение задачи: «Математические функции в Scheme (Script-Fu)»
textual
Листинг программы
scheme@(guile-user)> (truncate 17/4) $1 = 4
Объяснение кода листинга программы
- Функция
truncate
вызывается с аргументом 17/4. - Внутри функции происходит вычисление 17/4, результат сохраняется в переменной $1.
- Значение переменной $1 равно 4.
- Функция
truncate
возвращает результат вычисления 17/4, который равен 4.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д