Τρίτη 5 Απριλίου 2016

M2000 User Function's/Array's/Sub's Names Example

Παράδειγμα με το πώς δουλεύουμε τα ονόματα συναρτήσεων-πινάκων. Ένα α(10) μπορεί να είναι πίνακας, συνάρτηση ή ρουτίνα (δείτε το B}
Όλα τα αποτελέσματα βγαίνουν στο 100
Πρέπει να γράψουμε τα παρακάτω σε ένα τμήμα έστω ALFA αλλά όχι Α γιατί έχουμε το τμήμα Α και αυτό δεν γίνεται (δεν καλεί η Μ2000 τμήμα με το ίδιο όνομα, δεν αφήνει στα τμήματα να έχουν αναδρομή, στην κανονική κλήση, όπως όταν γράφουμε απλά το όνομα)

Στο τέλος είναι το αντικείμενο Μ, το οποίο δημιουργούμε από τη κλάση All. Και αυτό έχει τρεις συναρτήσεις, οι δυο λάμδα!

(Use Module Alfa  { include lines of code here } and then type Alfa to execute, or write all in a gsb file, all.gsb - a text file - and loaded with load all.  We can edit in folder using Edit "all.gsb" and then load it : Use New to erase previous loaded modules. Use Clear to clear variables. Use Flush to empty Value's Stack- stack to pass parammeters)


Class All {
      p=10
      Function a {=number*.p}
      b=lambda p ->number*p
      c=lambda p ->{
            k=p/2
            =number*k*2
      }
}
Module A {
      Dim a(100)
      a(10)=100
      Print a(10)
      Print Array("a",10)
}
Module B {
      a(10)
      Gosub a(10) \\ gosub is optional
     
      Sub a(x)
            Print x*10
      End Sub
}
Module C {
      \\ def is a macro for a function like in D
      Def a(x)=x*10
      Print a(10)
}
Module D {
      Function a {
            Read x
            =x*10
      }
      Print a(10) \\ 100
      Print Function("a",10)
}
Module E {
      Let p=10
      a=Lambda p ->Number*p
      p=1000
      Print a(10) \\ 100
      Dim a(10)
      a(2)=a
      \\ arrays have priority over functions
      Print a(2)(10) \\ 100
      Print a(@ 10) \\ just get priority to function a()
}
\\ call A then B...until E
A : B : C : D : E
\\ M is an object (Group)
M=all()
Print M.A(10), M.B(10), M.C(10) \\ 100, 100, 100

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.