This commit is contained in:
billpcs 2015-08-05 17:06:31 +03:00
parent f27ed65af6
commit cb065fdf37
2 changed files with 13 additions and 15 deletions

View File

@ -208,7 +208,7 @@ my-pet ; => #<dog>
(set-member? (set 1 2 3) 1) ; => #t
(set-member? (set 1 2 3) 4) ; => #f
;;; Πίνακες κατακερματισμού
;;; Πίνακες κατακερματισμού (Hashes)
;; Δημιουργήστε ένα αμετάβλητο πίνακα κατακερματισμού
(define m (hash 'a 1 'b 2 'c 3))
@ -355,7 +355,6 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
(eqv? (string-append "foo" "bar") (string-append "foo" "bar")) ; => #f
;; Το `equal?' υποστηρίζει την σύγκριση των παρακάτω τύπων μεταβλητών:
;; `equal?' supports the comparison of the following datatypes:
;; αλφαριθμητικά, αλφαριθμητικά από bytes, μεταβλητά ζεύγη , διανύσματα,
;; πίνακες κατακερματισμού και δομές.
;; Για άλλα ήδη τύπων μεταβλητών το `equal?' και το `eqv?' επιστρέφουν το
@ -426,13 +425,10 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
;;;
;;; Επανάληψη μέσα σε ακολουθίες:
;; Το `for' επιτρέπει την επενάληψη μέσα σε πολλά
;; Το `for' επιτρέπει την επανάληψη μέσα σε πολλά
;; άλλα ήδη από ακολουθίες: Λίστες, διανύσματα,
;; αλφαριθμητικά, σύνολα κτλ..
;;allows iteration over many other kinds of sequences:
;; lists, vectors, strings, sets, hash tables, etc...
(for ([i (in-list '(l i s t))])
(displayln i))
@ -488,13 +484,16 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
;; Υπάρχουν πολλά είδη απο προϋπάρχοντες τρόπους για να συλλέγουμε
;; τιμές από τους βρόχους
(for/sum ([i 10]) (* i i)) ; => 285
(for/product ([i (in-range 1 11)]) (* i i)) ; => 13168189440000
(for/and ([i 10] [j (in-range 10 20)]) (< i j)) ; => #t
(for/or ([i 10] [j (in-range 0 20 2)]) (= i j)) ; => #t
;; Και για να χρησιμοποιήσουμε ένα αφθαίρετο συνδιασμό χρησιμοποιύμε
;; Και για να χρησιμοποιήσουμε ένα αφθαίρετο συνδιασμό χρησιμοποιούμε
;; το 'for/fold'
(for/fold ([sum 0]) ([i '(1 2 3 4)]) (+ sum i)) ; => 10
;; Αυτό συχνά μπορεί να αντικαταστήσει τους κοινούς
;; προστακτικούς βρόχους (imperative loops)

View File

@ -43,11 +43,11 @@ Scala - Η επεκτάσιμη γλώσσα
να δείτε , φαίνοται κάπως έτσι.
*/
// Εκτύπωση με εξαναγκασμό νέας γραμμής στην επόμενη εκτύπωση
// Εκτύπωση με νέα γραμμή στην επόμενη εκτύπωση
println("Hello world!")
println(10)
// Εκτύπωση χωρίς τον εξαναγκασμό νέας γραμμής στην επόμενη εκτύπωση
// Εκτύπωση χωρίς νέα γραμμή στην επόμενη εκτύπωση
print("Hello world")
// Η δήλωση μεταβλητών γίνεται χρησιμοποιώντας var ή val.
@ -62,7 +62,7 @@ y = 20 // το y είναι τώρα 20
Η Scala είναι στατικού τύπου γλώσσα, εν τούτις προσέξτε ότι στις παραπάνω
δηλώσεις , δεν προσδιορίσαμε κάποιον τύπο. Αυτό συμβαίνει λόγω ενός
χαρακτηριστικού της Scala που λέγεται συμπερασματολογία τύπων. Στις
περισσότερες των περιπτώσεων , ο μεταγλωττιστής της Scala μπορεί να
περισσότερες των περιπτώσεων, ο μεταγλωττιστής της Scala μπορεί να
μαντέψει ποιός είναι ο τύπος μιας μεταβλητής. Μπορούμε να δηλώσουμε
αναλυτικά τον τύπο μιάς μεταβλητής ως εξής:
*/
@ -95,7 +95,7 @@ true == false // false
/*
Αξιολογώντας μια έκφραση στο REPL , σας δίνεται ο τύπος και
Αξιολογώντας μια έκφραση στο REPL, σας δίνεται ο τύπος και
η τιμή του αποτελέσματος
*/
@ -133,8 +133,7 @@ true == false // false
val n = 45
s"We have $n apples" // => "We have 45 apples"
// Expressions inside interpolated strings are also possible
// Εκφράσεις μέσα σε παρεμβεβλημένα αλφαριθμητικά είναι επίσης εφικτά
// Παρατηρήστε την χρήση των '{', '}'
val a = Array(11, 9, 6)
s"My second daughter is ${a(0) - a(2)} years old." // => "My second daughter is 5 years old."
s"We have double the amount of ${n / 2.0} in apples." // => "We have double the amount of 22.5 in apples."
@ -270,7 +269,7 @@ do {
// Η αναδρομή ουράς είναι ένας ιδιωματικός τρόπος να κάνεις επαναλαμβανόμενα
// πράγματα στην Scala. Οι αναδρομικές συναρτήσεις απαιτούν να γράφτεί
// ρητά τον τύπο που θα επιστρέψουν , αλλιώς ο μεταγλωττιστής δεν μπορεί
// ρητά ο τύπος που θα επιστρέψουν , αλλιώς ο μεταγλωττιστής δεν μπορεί
// αλλιώς να τον συνάγει. Παρακάτω είναι μια συνάρτηση που επιστρέφει Unit.
def showNumbersInRange(a:Int, b:Int):Unit = {
print(a)
@ -280,7 +279,7 @@ def showNumbersInRange(a:Int, b:Int):Unit = {
showNumbersInRange(1,14)
// Η ροή του ελέγχου.
// Έλεγχος Ροής
val x = 10