openlang

Возврат результата из функции APL

Как сделать так, чтобы моя функция возвращала значение после завершения выполнения?

Например, у меня есть:

ROUTINE N

? N ⍴ 12

//Это создаёт N случайных значений (N является аргументом функции) от 1 до 12.

Хочу просто понять, как получить результат функции и, например, передать этот результат другой функции.

Спасибо за любую помощь!

Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    Это указывается в заголовке функции (в строке с номером 0).

    Синтаксис выглядит следующим образом:

    answer ← lhs calculate rhs ; local_names

    Тогда по завершении выполнения функция возвращает то, что хранится в answer.

    Переведено с английскогоПоказать оригинал
  2. Ссылка на ответ

    Другой вариант, если ваша реализация APL его поддерживает, — прямое определение (dfns или лямбды). Это должно работать в Dyalog и GNU, а также в NARS2000 и NGN APL.

    Попробуйте это

    {?⍵⍴12} 36

    Аргумент обозначается через ⍵ (N из вопроса)

    Результатом функции становится значение выражения, без необходимости явно объявлять возврат.

    Ещё можно написать

    calculate←{?⍵⍴12}

    а затем

    calculate 36
    Переведено с английскогоПоказать оригинал

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

  1. Как случайно выбирать варианты enum в GDScript на Godot 3.3, не перечисляя их?

    Вот объявление enum, которое я использую в GDScript: Хочу случайно выбирать вариант enum, не перечисляя все возможные вариант…

    Ответы 2Последняя активность gdscript
  2. Синтаксис остатка в Nim

    Как в Nim записать операцию взятия остатка? cell % 7 == 0 выдаёт undeclared identifier: '%' Ни поиск в Google, ни просмотр SO…

    Ответы 2Последняя активность nim
  3. Объявление массива с постоянными строками

    Можно ли в Delphi объявить массив строк способом, похожим на пример ниже?

    Ответы 4Последняя активность object-pascal