Комплексные числа в схеме курицы

Почему в схеме с курицей по умолчанию (т.е. без загрузки расширений типа числа яйцо) определены процедуры real-part, imag-part, angle, magnitude, complex?, а make-rectangular и make-polar нет? Что мне с ними делать, если я не могу составить комплексное число?


person Matteo    schedule 10.08.2015    source источник
comment
В руководстве Chickens указано, что ядро ​​не поддерживает комплексные числа. Упомянутые вами процедуры возвращают правильные значения при использовании любого числа ниже в башне (у них есть только действительная часть). Почему они определены в ядре, может ответить только разработчик. И что с ними делать? Только ты можешь ответить. Возможно, вам больше повезет, если вы спросите об этом в их списке рассылки или на IRC-канале (#chicken)   -  person Rptx    schedule 11.08.2015
comment
См. ответ ниже. Обратите внимание, что CHICKEN 5 будет иметь встроенную поддержку полной числовой башни, поэтому, если вы проявите терпение, она станет доступна сама по себе :)   -  person sjamaan    schedule 11.08.2015


Ответы (1)


В Chicken Scheme без числового яйца вы можете создать настоящее число.

Теперь действительная часть действительного числа является действительным числом. Это означает, что результатом real-part всегда будет действительное число.

Мнимая часть действительного числа всегда равна нулю. Таким образом, результат imag-part для действительного числа является действительным числом.

Величина любого числа действительна, поэтому magnitude всегда дает действительное число.

Это объясняет, почему включены real-part, imag-part и magnitude — их легко реализовать для реальных входных данных.

Причина, по которой make-rectangular и make-polar не поддерживаются, заключается в том, что они производят комплексные числа. И комплексные числа не поддерживаются (без яйца).

То есть: операции, которые никогда не производят комплексные числа, работают (при применении к действительным числам). Операции, производящие комплексные числа, не учитываются.

person soegaard    schedule 11.08.2015