Ио Язык Фибоначчи Проблемы

Я работаю над проблемой Ио, которая включает последовательность Фибоначчи. Я пытаюсь создать метод, который проверяет, является ли число числом Фибоначчи или нет. Я не могу понять, почему мой метод IsAFib не работает, кто-нибудь знает, почему и что я могу сделать, чтобы это исправить? Я действительно новичок в Ио, и довольно новичок в программировании, поэтому, если бы вы могли описать причины вашего изменения, я был бы очень признателен! Я хочу знать, чем это должно отличаться, а не только тем, что должно быть написано.

            OperatorTable addOperator("xor", 11)
            true xor := method(bool, if(bool, false, true))
            false xor := method(bool, if(bool, true, false)) 

            doFile("isASquare.io");

Затем файл isASquare.io:

            isASquare := method(n,                    
                    for(i, 1, n, 
                        if(i * i == n, return true)
                        if(i * i > n, return false)
                    )
            )

            isAFib := method(n,
                    if(isASquare(2 ** 5 * n) xor isASquare(2 ** n * 5 - 4), return true, return false)
            )

1 ответ

Так что это проблема, которая возникает время от времени. Динамические операторы работают так, что когда vm загружает исходный файл, прежде чем мы оценим какой-либо из них, мы применяем правила, которые окружают операторы. При первом запуске io знает только о встроенных операторах. Как только это переупорядочение сообщений будет выполнено, мы начнем оценивать код в файле, то есть сначала эту строку:

OperatorTable addOperator("xor", 11)

К тому времени, когда этот код будет запущен, уже слишком поздно, чтобы иметь какое-либо влияние на этот файл.

Общее согласие в сообществе состоит в том, чтобы поместить всех ваших операторов в файл, который вы загружаете первым, а в конце этого файла, иметь его doFile() или аналогичным образом он загружает ваш основной файл, который будет их использовать.

Это немного больно в заднице, но в Io нет традиционного времени компиляции.

Другие вопросы по тегам