mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 15:24:09 +03:00
update
This commit is contained in:
parent
f27ed65af6
commit
cb065fdf37
@ -208,7 +208,7 @@ my-pet ; => #<dog>
|
|||||||
(set-member? (set 1 2 3) 1) ; => #t
|
(set-member? (set 1 2 3) 1) ; => #t
|
||||||
(set-member? (set 1 2 3) 4) ; => #f
|
(set-member? (set 1 2 3) 4) ; => #f
|
||||||
|
|
||||||
;;; Πίνακες κατακερματισμού
|
;;; Πίνακες κατακερματισμού (Hashes)
|
||||||
|
|
||||||
;; Δημιουργήστε ένα αμετάβλητο πίνακα κατακερματισμού
|
;; Δημιουργήστε ένα αμετάβλητο πίνακα κατακερματισμού
|
||||||
(define m (hash 'a 1 'b 2 'c 3))
|
(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
|
(eqv? (string-append "foo" "bar") (string-append "foo" "bar")) ; => #f
|
||||||
|
|
||||||
;; Το `equal?' υποστηρίζει την σύγκριση των παρακάτω τύπων μεταβλητών:
|
;; Το `equal?' υποστηρίζει την σύγκριση των παρακάτω τύπων μεταβλητών:
|
||||||
;; `equal?' supports the comparison of the following datatypes:
|
|
||||||
;; αλφαριθμητικά, αλφαριθμητικά από bytes, μεταβλητά ζεύγη , διανύσματα,
|
;; αλφαριθμητικά, αλφαριθμητικά από bytes, μεταβλητά ζεύγη , διανύσματα,
|
||||||
;; πίνακες κατακερματισμού και δομές.
|
;; πίνακες κατακερματισμού και δομές.
|
||||||
;; Για άλλα ήδη τύπων μεταβλητών το `equal?' και το `eqv?' επιστρέφουν το
|
;; Για άλλα ήδη τύπων μεταβλητών το `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))])
|
(for ([i (in-list '(l i s t))])
|
||||||
(displayln i))
|
(displayln i))
|
||||||
|
|
||||||
@ -488,13 +484,16 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
|||||||
|
|
||||||
;; Υπάρχουν πολλά είδη απο προϋπάρχοντες τρόπους για να συλλέγουμε
|
;; Υπάρχουν πολλά είδη απο προϋπάρχοντες τρόπους για να συλλέγουμε
|
||||||
;; τιμές από τους βρόχους
|
;; τιμές από τους βρόχους
|
||||||
|
|
||||||
(for/sum ([i 10]) (* i i)) ; => 285
|
(for/sum ([i 10]) (* i i)) ; => 285
|
||||||
(for/product ([i (in-range 1 11)]) (* i i)) ; => 13168189440000
|
(for/product ([i (in-range 1 11)]) (* i i)) ; => 13168189440000
|
||||||
(for/and ([i 10] [j (in-range 10 20)]) (< i j)) ; => #t
|
(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/or ([i 10] [j (in-range 0 20 2)]) (= i j)) ; => #t
|
||||||
;; Και για να χρησιμοποιήσουμε ένα αφθαίρετο συνδιασμό χρησιμοποιύμε
|
|
||||||
|
;; Και για να χρησιμοποιήσουμε ένα αφθαίρετο συνδιασμό χρησιμοποιούμε
|
||||||
;; το 'for/fold'
|
;; το 'for/fold'
|
||||||
(for/fold ([sum 0]) ([i '(1 2 3 4)]) (+ sum i)) ; => 10
|
(for/fold ([sum 0]) ([i '(1 2 3 4)]) (+ sum i)) ; => 10
|
||||||
|
|
||||||
;; Αυτό συχνά μπορεί να αντικαταστήσει τους κοινούς
|
;; Αυτό συχνά μπορεί να αντικαταστήσει τους κοινούς
|
||||||
;; προστακτικούς βρόχους (imperative loops)
|
;; προστακτικούς βρόχους (imperative loops)
|
||||||
|
|
||||||
|
@ -43,11 +43,11 @@ Scala - Η επεκτάσιμη γλώσσα
|
|||||||
να δείτε , φαίνοται κάπως έτσι.
|
να δείτε , φαίνοται κάπως έτσι.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Εκτύπωση με εξαναγκασμό νέας γραμμής στην επόμενη εκτύπωση
|
// Εκτύπωση με νέα γραμμή στην επόμενη εκτύπωση
|
||||||
println("Hello world!")
|
println("Hello world!")
|
||||||
println(10)
|
println(10)
|
||||||
|
|
||||||
// Εκτύπωση χωρίς τον εξαναγκασμό νέας γραμμής στην επόμενη εκτύπωση
|
// Εκτύπωση χωρίς νέα γραμμή στην επόμενη εκτύπωση
|
||||||
print("Hello world")
|
print("Hello world")
|
||||||
|
|
||||||
// Η δήλωση μεταβλητών γίνεται χρησιμοποιώντας var ή val.
|
// Η δήλωση μεταβλητών γίνεται χρησιμοποιώντας var ή val.
|
||||||
@ -62,7 +62,7 @@ y = 20 // το y είναι τώρα 20
|
|||||||
Η Scala είναι στατικού τύπου γλώσσα, εν τούτις προσέξτε ότι στις παραπάνω
|
Η Scala είναι στατικού τύπου γλώσσα, εν τούτις προσέξτε ότι στις παραπάνω
|
||||||
δηλώσεις , δεν προσδιορίσαμε κάποιον τύπο. Αυτό συμβαίνει λόγω ενός
|
δηλώσεις , δεν προσδιορίσαμε κάποιον τύπο. Αυτό συμβαίνει λόγω ενός
|
||||||
χαρακτηριστικού της Scala που λέγεται συμπερασματολογία τύπων. Στις
|
χαρακτηριστικού της Scala που λέγεται συμπερασματολογία τύπων. Στις
|
||||||
περισσότερες των περιπτώσεων , ο μεταγλωττιστής της Scala μπορεί να
|
περισσότερες των περιπτώσεων, ο μεταγλωττιστής της Scala μπορεί να
|
||||||
μαντέψει ποιός είναι ο τύπος μιας μεταβλητής. Μπορούμε να δηλώσουμε
|
μαντέψει ποιός είναι ο τύπος μιας μεταβλητής. Μπορούμε να δηλώσουμε
|
||||||
αναλυτικά τον τύπο μιάς μεταβλητής ως εξής:
|
αναλυτικά τον τύπο μιάς μεταβλητής ως εξής:
|
||||||
*/
|
*/
|
||||||
@ -95,7 +95,7 @@ true == false // false
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Αξιολογώντας μια έκφραση στο REPL , σας δίνεται ο τύπος και
|
Αξιολογώντας μια έκφραση στο REPL, σας δίνεται ο τύπος και
|
||||||
η τιμή του αποτελέσματος
|
η τιμή του αποτελέσματος
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -133,8 +133,7 @@ true == false // false
|
|||||||
val n = 45
|
val n = 45
|
||||||
s"We have $n apples" // => "We have 45 apples"
|
s"We have $n apples" // => "We have 45 apples"
|
||||||
|
|
||||||
// Expressions inside interpolated strings are also possible
|
// Παρατηρήστε την χρήση των '{', '}'
|
||||||
// Εκφράσεις μέσα σε παρεμβεβλημένα αλφαριθμητικά είναι επίσης εφικτά
|
|
||||||
val a = Array(11, 9, 6)
|
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"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."
|
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. Οι αναδρομικές συναρτήσεις απαιτούν να γράφτεί
|
// πράγματα στην Scala. Οι αναδρομικές συναρτήσεις απαιτούν να γράφτεί
|
||||||
// ρητά τον τύπο που θα επιστρέψουν , αλλιώς ο μεταγλωττιστής δεν μπορεί
|
// ρητά ο τύπος που θα επιστρέψουν , αλλιώς ο μεταγλωττιστής δεν μπορεί
|
||||||
// αλλιώς να τον συνάγει. Παρακάτω είναι μια συνάρτηση που επιστρέφει Unit.
|
// αλλιώς να τον συνάγει. Παρακάτω είναι μια συνάρτηση που επιστρέφει Unit.
|
||||||
def showNumbersInRange(a:Int, b:Int):Unit = {
|
def showNumbersInRange(a:Int, b:Int):Unit = {
|
||||||
print(a)
|
print(a)
|
||||||
@ -280,7 +279,7 @@ def showNumbersInRange(a:Int, b:Int):Unit = {
|
|||||||
showNumbersInRange(1,14)
|
showNumbersInRange(1,14)
|
||||||
|
|
||||||
|
|
||||||
// Η ροή του ελέγχου.
|
// Έλεγχος Ροής
|
||||||
|
|
||||||
val x = 10
|
val x = 10
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user