Διορθώθηκε το πρόβλημα στην ανάγνωση ονομάτων συναρτήσεων στα Com αντικείμενα!
Το παρακάτω στο 14 περίπου έβγαζε out of stack. (το alfa είναι Inventory, λίστα της Μ2000 που λέγεται Κατάσταση)
Declare Worksheet "{00020820-0000-0000-C000-000000000046}"
Profiler
FOR I=1 TO 100 {
alfa=param(Worksheet)
Print i
}
? timecount
Διορθώθηκαν κάποιες αλλαγές που είχε επιφέρει η χρήση των πινάκων κατακερματισμού για εύρεση ονομάτων, κύρια με την αναδρομή:
παράδειγμα:
function k {
function mp {
read x
if x<2 then =1 : exit
=mp(x-1)*x
}
read ka
= mp(ka)
}
Print k( 10 )
function k$ {
function mp$ {
read ? x
if x<2 then ="1" : exit
=str$(val(mp$(x-1))*x)
}
read ka
= mp$(ka)
}
Print k$( 10 )
Στις λάμδα συναρτήσεις μπήκαν το Λάμδα$() και Λάμδα() για να γίνεται αναδρομή χωρίς να μας ενδιαφέρει το "τρέχον" όνομα. Στο παράδειγμα γίνεται αναδρομή στο στοιχείο πίνακα Α(3) που έχει μια λάμδα συνάρτηση (και έτσι δεν έχει όνομα, μόνο θέση σε πίνακα).
Γίνεται κλήση του CheckMe με δυο τρόπους. η Κάλεσε ή Call το καλεί με δυνατότητα αναδρομής, ενώ η κλήση χωρίς αυτήν, με το όνομα μόνο δεν δίνει δικαίωμα αναδρομής (έχει ρόλο το όνομα που χρησιμοποιείται τη δεδομένη στιγμή και στο Call αλλάζει εσωτερικά)
Module CheckMe {
Group z {
p=lambda-> {
read n
if n<2 then =1 : exit
=lambda(n-1)*n
}
}
Print z.p(3)
m=z.p
Print m(6)
Print M(12)
dim A(10)
A(3)=m
Print A(3)(8)
}
CALL CheckMe
CheckMe
Το παρακάτω στο 14 περίπου έβγαζε out of stack. (το alfa είναι Inventory, λίστα της Μ2000 που λέγεται Κατάσταση)
Declare Worksheet "{00020820-0000-0000-C000-000000000046}"
Profiler
FOR I=1 TO 100 {
alfa=param(Worksheet)
Print i
}
? timecount
Διορθώθηκαν κάποιες αλλαγές που είχε επιφέρει η χρήση των πινάκων κατακερματισμού για εύρεση ονομάτων, κύρια με την αναδρομή:
παράδειγμα:
function k {
function mp {
read x
if x<2 then =1 : exit
=mp(x-1)*x
}
read ka
= mp(ka)
}
Print k( 10 )
function k$ {
function mp$ {
read ? x
if x<2 then ="1" : exit
=str$(val(mp$(x-1))*x)
}
read ka
= mp$(ka)
}
Print k$( 10 )
Στις λάμδα συναρτήσεις μπήκαν το Λάμδα$() και Λάμδα() για να γίνεται αναδρομή χωρίς να μας ενδιαφέρει το "τρέχον" όνομα. Στο παράδειγμα γίνεται αναδρομή στο στοιχείο πίνακα Α(3) που έχει μια λάμδα συνάρτηση (και έτσι δεν έχει όνομα, μόνο θέση σε πίνακα).
Γίνεται κλήση του CheckMe με δυο τρόπους. η Κάλεσε ή Call το καλεί με δυνατότητα αναδρομής, ενώ η κλήση χωρίς αυτήν, με το όνομα μόνο δεν δίνει δικαίωμα αναδρομής (έχει ρόλο το όνομα που χρησιμοποιείται τη δεδομένη στιγμή και στο Call αλλάζει εσωτερικά)
Module CheckMe {
Group z {
p=lambda-> {
read n
if n<2 then =1 : exit
=lambda(n-1)*n
}
}
Print z.p(3)
m=z.p
Print m(6)
Print M(12)
dim A(10)
A(3)=m
Print A(3)(8)
}
CALL CheckMe
CheckMe
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.