Ich denke nicht, dass dies für Analysezwecke ausreicht, aber es gibt eine Menge kleiner Beispiele in M [UMPS] durch Beispiel . Auf der MUMPS Wikipedia -Seite gibt es auch einige ausführliche Beispiele. Ich weiß nicht, ob sie alleine stehen oder nicht. Habe sie nicht selbst getestet.
VistA ist eine Open-Source-EMR für die Veteranenverwaltung, die auf MUMPS geschrieben wurde. Sie können es vom VistA-Wiki hier herunterladen: OpenVistA Download Page
Ich habe nicht versucht, es selbst herunterzuladen, daher müssen Sie möglicherweise MUMPS installieren, um auf die Quelle zugreifen zu können. Viel Glück!
GitHub hostet tatsächlich viele MUMPS-Software, aber es wird leider als Objective-C oder Matlab getaggt, so dass es nicht einfach ist, dort nach MUMPS-Code zu suchen. Hier sind einige Projekte, von denen ich weiß, dass sie zumindest teilweise mit MUMPS erstellt wurden:
Hier ist "Hallo Welt":
w "Hello world!",!
Die w
ist eine Abkürzung von write
- entweder ist akzeptabel, aber die Abkürzung ist idiomatischer. Das Literal !
ist ein Newline.
Hier ist eine Fibonacci-Implementierung, zuerst ohne Abkürzungen, dann mit
innerFibonacci(value,cache)
. if cache(value)'="" quit cache(value)
. set cache(value=$$innerFibonacci(value-1,cache)+$$innerFibonacci(value-2,cache)
. quit cache(value)
fibonacci(value)
. new cache
. set cache(0)=1
. set cache(1)=1
. quit $$innerFibonacci(value,cache)
Hier ist das Gleiche mit den idiomatischen Abkürzungen:
innerFibonacci(value,cache)
. i cache(value)'="" q cache(value)
. s cache(value=$$innerFibonacci(value-1,cache)+$$innerFibonacci(value-2,cache)
. q cache(value)
fibonacci(value)
. n cache
. s cache(0)=1
. s cache(1)=1
. q $$innerFibonacci(value,cache)
Jetzt - Rekursion in MUMPS ist eine ziemlich gefährliche Sache zu tun - so könnte dies leicht für einen großen Wert explodieren.
Hier ist ein wenig mehr "MUMPS-y" Beispiel, eines, das tatsächlich die einzelne Datenstruktur von MUMPS nutzt, die im Wesentlichen ein sortiertes Array ist, dessen Indizes Zahlen oder Strings sein können. Voranstellen dieser Arrays mit ^
wird auf Festplatte gespeichert. Die $
sachen sind in die Sprache eingebaute Funktionen. % Co_de% ist eine Nachbedingung für den Befehl q:
, was bedeutet, dass "beenden, wenn die Person gleich" ist.
Hier ist es ohne Abkürzungen, dann mit:
quit
Jetzt mit Abkürzungen:
peopleFoodCombinations(people,food)
. new person
. for set person=$order(people(person)) quit:person="" do
. . set ^PEOPLE(person,"favoriteFood")=food(person)
. quit
Tags und Links mumps