Κυριακή, 3 Απριλίου 2016

Lambda SUM and RANGE in M2000

Μπορούμε να φτιάξουμε την Range της Python (χωρίς βήμα) και την Sum.
Κάθε φορά που καλεί την Range() η Sum θα βγάλει ή νούμερο ή λάθος. Στο λάθος η sum κάνει εξαγωγή!


Range = Lambda -> {
      read St, Ed
      =lambda St, Ed -> {
            if Ed>St then {
                  Ed--
                  =Ed
            }  Else Error "finish"
      }
}

Sum = Lambda -> {
      Read What
      S=0
      Try {
            S+=What()
            Loop
      }      
      =S
}
Print Sum(Range(1,4))


a$=lambda$ ->{read a$ : Print a$}
call a$("George")

(παραδείγματα σε Python εδώ: http://www.dotnetperls.com/lambda-python)


Παράδειγμα στα αγγλικά


\\ Supplier
Range = Lambda -> {
      read St, Ed
      =lambda St, Ed -> {
            if Ed>St then {
                  =St
                  St++
            }  Else Error "finish"
      }
}


\\Process for Each
Cube = Lambda -> Number**3


\\ Consumer
ToScreen = Lambda -> { Print Number }


\\ Main Loop
ForEach = Lambda -> {
      Read Range, Func, ToThere
      Try {
      Call ToThere(Func(Range()))
      loop
      }
}


Call ForEach(Range(1,11), Cube, ToScreen)







Παράδειγμα με ελληνικά! 
Περιοχή = λάμδα -> {
      Διάβασε Αρ, Τε
      =λάμδα Αρ, Τε -> {
            Αν Τε>Αρ Τότε {
                  =Αρ
                  Αρ++
            }  Αλλιώς Λάθος "Τέρμα"
      }
}
Κύβος=λάμδα -> αριθμός**3
ΣτηνΟθόνη = λάμδα ->{Τύπωσε Αριθμός}
Για_Κάθε_Ένα = λάμδα -> {
      Διάβασε Περ, Συναρ, Εξ
      Δες {
      Κάλεσε Εξ(Συναρ(Περ()))
      Κυκλικά
      }
}
\\Σε μια γραμμή εκτέλεση!
Κάλεσε Για_Κάθε_Ένα(Περιοχή(1,11), Κύβος, ΣτηνΟθόνη)


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

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