Поддерживаются ли пользовательские функции в UniData

В настоящее время изучается вопрос перехода с mvBase на Unidata, и хотелось бы узнать, поддерживаются ли определяемые пользователем функции, поскольку я не вижу этого в загруженной мной документации?

например, у меня есть программа DATABASIC с чем-то вроде

A = @FUNCTION_NAME(VAR1)

1 ответ

Да, Unidata поддерживает пользовательские функции.

Чтобы создать функцию в Unidata, используйте строку, подобную этой, в строке 1 файла кода:

FUNCTION MY.FUNCTION.NAME( ARG1, ARG2 )

Внутри функции используйте инструкцию RETURN, чтобы вернуть результат:

RETURN ARG1 + ARG2

Чтобы вызвать его, вы должны указать, что собираетесь использовать его с оператором DEFFUN в программе, которая будет использовать функцию:

DEFFUN MY.FUNCTION.NAME( ARG1, ARG2 )

Я обычно помещаю свои операторы DEFFUN в верхнюю часть программы, сразу после $INCLUDE. (Имена параметров не должны совпадать между строками FUNCTION и DEFFUN, но я не знаю ни одной причины, чтобы целенаправленно делать их разными.)

После этой настройки вы можете вызвать функцию, используя ее имя в выражении:

TOTAL = MY.FUNCTION.NAME( 10, 15 )

После этого заявления ИТОГО будет иметь значение 25.

Я никогда не видел функцию, вызванную с синтаксисом @FUNCTION_NAME в Unidata.

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