2016-04-05 6 views
1

Я начинаю проект, где мне нужно знать некоторые знания о MUMPs, универсальной многопрограммной системе Массачусетса. Мне удалось заставить его работать на моем компьютере OS X El Capitan. Я могу сделать некоторые простые вещи, но не могу создать простую подпрограмму. Согласно спецификации, которые я могу найти, подпрограмма создается наклейкой затем следуют строки, которые начинаются с символа табуляции или пробел и инструкции, так чтоКак создать подпрограмму в MUMPS на Mac os X

HELLO 
    WRITE "Hello, World!",! 
    QUIT 

бы подпрограммой, что я мог Invoke с помощью

DO HELLO 

Когда я пытаюсь ввести его, он немедленно выполняет инструкцию WRITE.

Кроме того, многие примеры имеют вид:

DEMO 
    Kill For i=1:1:10 SET Ary(i)=i*2 
    DO Average Write !,"Average=",AVG 
    KILL Ary,AVG,i 
    QUIT 
Average SET Sum=0; 
    ; Do something here 
    QUIT 

Когда я начинаю набирать DO средней линии, я получаю ошибку, что среднее значение не определено.

Любые идеи о том, как войти в подпрограмму?

+1

Я не вижу в коде неправильного кода. Но, имея ограниченное время, я не хочу спрашивать, почему он не работает. Я предлагаю запросить comp.lang.mumps. Там есть много людей, которые могут вам помочь. --Sam (запрограммировано в M уже 8 лет). –

+1

Какую версию M/Mumps вы используете? (Или это действительно Caché ObjectScript?) –

+0

Я использую Cache 2016.1, но я не знаю, является ли это ObjectScript. Я использую его с терминала и имею файл VistA CACHE.DAT. Я не могу понять, как получить список исполняемых функций в этом файле и не может понять, как написать один из терминала и сохранить его как глобальный. –

ответ

2

Прежде всего, между Kill и For, должно быть больше 1 пробела, и если это всего лишь одно место, то For стал переменной и должен быть убит. Тогда вы ошибались, когда распознавали НЕОПРЕДЕЛЕННУЮ ошибку для команды DO Average, у вас есть другая НЕОПРЕДЕЛЕННАЯ ошибка в той же строке, и это переменная AVG, которая действительно не определена в вашем коде.
Если вы только в начале понимания языка MUMPS, я бы рекомендовал писать каждую команду на отдельной строке.

+0

Спасибо. Это было большой помощью. Исправлено это, затем поместил код в файл и сделал: DO^filename, и он сработал! Вкратце, как мне закрыть вопрос, как только я доволен ответом и «вознаграждаю» человека, отвечающего? –

+1

Просто посмотрите на stackoverflow [tour] (http://stackoverflow.com/tour) – DAiMor