Я пытаюсь проверить, находится ли точка внутри круга с началом в 1,1. Однако, когда я пытаюсь просто вычесть «1.0» из координат, я получаю сообщение об ошибке:
Error at exercise3.fut:2:6-14:
Cannot unify 't₂' with type f32' ('t₂' must be one of i8, i16, i32, i64, u8, u16, u32, u64 due to use at exercise3.fut:2:6-30).
When matching type
t₂
with
f32
Что мне нужно сделать, чтобы компилятору было удобно работать с "x-1.0" (где x имеет тип f32)?
Я пробовал изменить тип ввода на «t» и написать x-(1.0f32) и т. д., но все равно получаю те же или похожие ошибки.
Это код, который дает проблему:
let hit_register (x : f32) (y : f32) : bool =
((x - 1.0)^2.0 + (y - 1.0)^2.0) <= 1.0
Кажется, достаточно простая функция/проблема, но я не смог найти никакой помощи в этом, уже доступном в Интернете.
есть ли в вашем языке оператор **
(или функция pow
) для возведения в степень значений плавающий? то есть может ли быть так, что ^
зарезервировано только для целых значений?
@Ли Футарк! Извините, пытался включить его как тег, но он не существует.
@WillNess Да, я думаю, что это все. Спасибо!
@JacobJNilsson Моя цель — угодить. :)
Оператор ^
обозначает побитовое xor аргументов целочисленного типа.
Оператор возведения в степень **
. Он определен для всех числовых типов.
Ссылка: https://futhark.readthedocs.io/en/latest/language-reference.html
Какой язык вы используете?