mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-24 10:01:38 +00:00
Merge pull request #1596 from blossomica/master
[racket/el-gr] Fixed some typos
This commit is contained in:
commit
269cbec2e0
@ -31,12 +31,12 @@ H Racket είναι μια γενικού σκοπού, πολυ-υποδειγ
|
|||||||
|
|
||||||
;; Τα σχόλια S-expression (εκφράσεις S) comments απορρίπτουν την
|
;; Τα σχόλια S-expression (εκφράσεις S) comments απορρίπτουν την
|
||||||
;; έκφραση που ακολουθεί, δυνατότητα που είναι χρήσιμη για να
|
;; έκφραση που ακολουθεί, δυνατότητα που είναι χρήσιμη για να
|
||||||
;; κάνουμε σχόλια κάποιες εκφράσεις κατα τη διάρκεια του debugging
|
;; κάνουμε σχόλια κάποιες εκφράσεις κατά τη διάρκεια του debugging
|
||||||
|
|
||||||
#; (αυτή η έκφραση δεν θα εκτελεστεί)
|
#; (αυτή η έκφραση δεν θα εκτελεστεί)
|
||||||
|
|
||||||
;; (Αν δεν καταλαβαίνεται τι είναι οι εκφράσεις , περιμένετε... Θα το μάθουμε
|
;; (Αν δεν καταλαβαίνεται τι είναι οι εκφράσεις , περιμένετε... Θα το μάθουμε
|
||||||
;; πολύ συντομα!)
|
;; πολύ σύντομα!)
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -57,8 +57,8 @@ H Racket είναι μια γενικού σκοπού, πολυ-υποδειγ
|
|||||||
;; όπου το f είναι η συνάρτηση και τα x y z
|
;; όπου το f είναι η συνάρτηση και τα x y z
|
||||||
;; είναι οι όροι που η συνάρτηση δέχεται
|
;; είναι οι όροι που η συνάρτηση δέχεται
|
||||||
;; ως ορίσματα. Αν θέλουμε να δημιουργήσουμε
|
;; ως ορίσματα. Αν θέλουμε να δημιουργήσουμε
|
||||||
;; μια λίστα στην κυριολεξία απο δίαφορα δεδομένα,
|
;; μια λίστα στην κυριολεξία από δίαφορα δεδομένα,
|
||||||
;; χρησιμοποιούμε το ' για να το εμποδίσουμε απο το να
|
;; χρησιμοποιούμε το ' για να το εμποδίσουμε από το να
|
||||||
;; αξιολογηθεί σαν έκφραση. Για παράδειγμα:
|
;; αξιολογηθεί σαν έκφραση. Για παράδειγμα:
|
||||||
'(+ 1 2) ; => Παραμένει (+ 1 2) και δεν γίνεται η πράξη
|
'(+ 1 2) ; => Παραμένει (+ 1 2) και δεν γίνεται η πράξη
|
||||||
;; Τώρα , ας κάνουμε μερικές πράξεις
|
;; Τώρα , ας κάνουμε μερικές πράξεις
|
||||||
@ -88,15 +88,15 @@ H Racket είναι μια γενικού σκοπού, πολυ-υποδειγ
|
|||||||
;;; Τα αλφαριθμητικά είναι πίνακες χαρακτήρων συγκεκριμένου μήκους
|
;;; Τα αλφαριθμητικά είναι πίνακες χαρακτήρων συγκεκριμένου μήκους
|
||||||
"Hello, world!"
|
"Hello, world!"
|
||||||
"Benjamin \"Bugsy\" Siegel" ; Το backslash είναι χαρακτήρας διαφυγής
|
"Benjamin \"Bugsy\" Siegel" ; Το backslash είναι χαρακτήρας διαφυγής
|
||||||
"Foo\tbar\41\x21\u0021\a\r\n" ; Συμπεριλαμβάνονται οι χαρακτήες διαφυγής της C,
|
"Foo\tbar\41\x21\u0021\a\r\n" ; Συμπεριλαμβάνονται οι χαρακτήρες διαφυγής της C,
|
||||||
; σε Unicode
|
; σε Unicode
|
||||||
"λx:(μα.α→α).xx" ; Μπορούν να υπάρχουν και Unicode χαρακτήρες
|
"λx:(μα.α→α).xx" ; Μπορούν να υπάρχουν και Unicode χαρακτήρες
|
||||||
|
|
||||||
;; Μπορούμε να εννώσουμε αλφαριθμητικά!
|
;; Μπορούμε να ενώσουμε αλφαριθμητικά!
|
||||||
(string-append "Hello " "world!") ; => "Hello world!"
|
(string-append "Hello " "world!") ; => "Hello world!"
|
||||||
|
|
||||||
;; Ένα αλφαριθμητικό μπορούμε να το χρησιμοπιησουμε
|
;; Ένα αλφαριθμητικό μπορούμε να το χρησιμοποιήσουμε
|
||||||
;; όπως και μια λίστα απο χαρακτήρες
|
;; όπως και μια λίστα από χαρακτήρες
|
||||||
(string-ref "Apple" 0) ; => #\A ;; Παίρνουμε το πρώτο στοιχείο
|
(string-ref "Apple" 0) ; => #\A ;; Παίρνουμε το πρώτο στοιχείο
|
||||||
|
|
||||||
;; Η συνάρτηση format μπορεί να χρησιμοποιηθεί για
|
;; Η συνάρτηση format μπορεί να χρησιμοποιηθεί για
|
||||||
@ -117,18 +117,18 @@ H Racket είναι μια γενικού σκοπού, πολυ-υποδειγ
|
|||||||
some-var ; => 5
|
some-var ; => 5
|
||||||
|
|
||||||
;; Μπορούμε επίσης να χρησιμοποιήσουμε unicode χαρακτήρες.
|
;; Μπορούμε επίσης να χρησιμοποιήσουμε unicode χαρακτήρες.
|
||||||
(define ⊆ subset?) ;; Εδώ ουστιαστικά δίνουμε στη ήδη ύπαρχουσα συνάρτηση subset?
|
(define ⊆ subset?) ;; Εδώ ουσιαστικά δίνουμε στη ήδη υπάρχουσα συνάρτηση subset?
|
||||||
;; ένα νέο όνομα ⊆ , και παρακάτω την καλούμε με το νέο της όνομα.
|
;; ένα νέο όνομα ⊆ , και παρακάτω την καλούμε με το νέο της όνομα.
|
||||||
(⊆ (set 3 2) (set 1 2 3)) ; => #t
|
(⊆ (set 3 2) (set 1 2 3)) ; => #t
|
||||||
|
|
||||||
;; Αν ζητήσουμε μια μεταβλητή που δεν έχει οριστεί πρίν π.χ
|
;; Αν ζητήσουμε μια μεταβλητή που δεν έχει οριστεί πριν π.χ.
|
||||||
(printf name)
|
(printf name)
|
||||||
;; θα πάρουμε το παρακάτω μήνυμα
|
;; θα πάρουμε το παρακάτω μήνυμα
|
||||||
;name: undefined;
|
;name: undefined;
|
||||||
; cannot reference undefined identifier
|
; cannot reference undefined identifier
|
||||||
; context...:
|
; context...:
|
||||||
|
|
||||||
;; Η τοπική δέσμευση : `me' δευσμεύεται με το "Bob" μόνο μέσα στο (let ...)
|
;; Η τοπική δέσμευση : `me' δεσμεύεται με το "Bob" μόνο μέσα στο (let ...)
|
||||||
(let ([me "Bob"])
|
(let ([me "Bob"])
|
||||||
"Alice"
|
"Alice"
|
||||||
me) ; => "Bob"
|
me) ; => "Bob"
|
||||||
@ -156,7 +156,7 @@ my-pet ; => #<dog>
|
|||||||
;;; Λίστες
|
;;; Λίστες
|
||||||
|
|
||||||
;; Οι λίστες είναι linked-list δομές δεδομένων,
|
;; Οι λίστες είναι linked-list δομές δεδομένων,
|
||||||
;; που έχουν δημιουργηθεί απο ζευγάρια 'cons'
|
;; που έχουν δημιουργηθεί από ζευγάρια 'cons'
|
||||||
;; και τελειώνουν με 'null' (ή αλλιώς '()) για να
|
;; και τελειώνουν με 'null' (ή αλλιώς '()) για να
|
||||||
;; δηλώσουν ότι αυτό είναι το τέλος της λίστας
|
;; δηλώσουν ότι αυτό είναι το τέλος της λίστας
|
||||||
(cons 1 (cons 2 (cons 3 null))) ; => '(1 2 3)
|
(cons 1 (cons 2 (cons 3 null))) ; => '(1 2 3)
|
||||||
@ -191,12 +191,12 @@ my-pet ; => #<dog>
|
|||||||
;; Τα διανύσματα είναι πίνακες σταθερού μήκους
|
;; Τα διανύσματα είναι πίνακες σταθερού μήκους
|
||||||
#(1 2 3) ; => '#(1 2 3)
|
#(1 2 3) ; => '#(1 2 3)
|
||||||
|
|
||||||
;; Χρησιμοποιύμε το `vector-append' για να προσθέσουμε διανύσματα
|
;; Χρησιμοποιούμε το `vector-append' για να προσθέσουμε διανύσματα
|
||||||
(vector-append #(1 2 3) #(4 5 6)) ; => #(1 2 3 4 5 6)
|
(vector-append #(1 2 3) #(4 5 6)) ; => #(1 2 3 4 5 6)
|
||||||
|
|
||||||
;;; Σύνολα
|
;;; Σύνολα
|
||||||
|
|
||||||
;; Δημιουργούμε ένα σύνολο απο μία λίστα
|
;; Δημιουργούμε ένα σύνολο από μία λίστα
|
||||||
(list->set '(1 2 3 1 2 3 3 2 1 3 2 1)) ; => (set 1 2 3)
|
(list->set '(1 2 3 1 2 3 3 2 1 3 2 1)) ; => (set 1 2 3)
|
||||||
|
|
||||||
;; Προσθέτουμε έναν αριθμό στο σύνολο χρησιμοποιώντας το `set-add'
|
;; Προσθέτουμε έναν αριθμό στο σύνολο χρησιμοποιώντας το `set-add'
|
||||||
@ -214,10 +214,10 @@ my-pet ; => #<dog>
|
|||||||
;; Δημιουργήστε ένα αμετάβλητο πίνακα κατακερματισμού
|
;; Δημιουργήστε ένα αμετάβλητο πίνακα κατακερματισμού
|
||||||
(define m (hash 'a 1 'b 2 'c 3))
|
(define m (hash 'a 1 'b 2 'c 3))
|
||||||
|
|
||||||
;; Παίρνουμε μια τιμή απο τον πίνακα
|
;; Παίρνουμε μια τιμή από τον πίνακα
|
||||||
(hash-ref m 'a) ; => 1
|
(hash-ref m 'a) ; => 1
|
||||||
|
|
||||||
;; Άν ζητήσουμε μια τιμή που δέν υπάρχει παίρνουμε μία εξαίρεση
|
;; Αν ζητήσουμε μια τιμή που δεν υπάρχει παίρνουμε μία εξαίρεση
|
||||||
; (hash-ref m 'd) => no value found for key
|
; (hash-ref m 'd) => no value found for key
|
||||||
|
|
||||||
;; Μπορούμε να δώσουμε μια default τιμή για τα κλειδιά που λείπουν
|
;; Μπορούμε να δώσουμε μια default τιμή για τα κλειδιά που λείπουν
|
||||||
@ -234,7 +234,7 @@ m2 ; => '#hash((b . 2) (a . 1) (d . 4) (c . 3))
|
|||||||
m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
||||||
|
|
||||||
;; Χρησιμοποιούμε το `hash-remove' για να αφαιρέσουμε
|
;; Χρησιμοποιούμε το `hash-remove' για να αφαιρέσουμε
|
||||||
;; κλειδία
|
;; κλειδιά
|
||||||
(hash-remove m 'a) ; => '#hash((b . 2) (c . 3))
|
(hash-remove m 'a) ; => '#hash((b . 2) (c . 3))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -247,12 +247,12 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
|||||||
;; Μπορούμε επίσης να χρησιμοποιήσουμε το `λ'
|
;; Μπορούμε επίσης να χρησιμοποιήσουμε το `λ'
|
||||||
(λ () "Hello World") ; => Ίδια συνάρτηση
|
(λ () "Hello World") ; => Ίδια συνάρτηση
|
||||||
|
|
||||||
;; Χρησιμοποιύμε τις παρενθέσεις για να καλέσουμε όλες τις συναρτήσεις
|
;; Χρησιμοποιούμε τις παρενθέσεις για να καλέσουμε όλες τις συναρτήσεις
|
||||||
;; συμπεριλαμβανομένων και των εκφράσεων 'λάμδα'
|
;; συμπεριλαμβανομένων και των εκφράσεων 'λάμδα'
|
||||||
((lambda () "Hello World")) ; => "Hello World"
|
((lambda () "Hello World")) ; => "Hello World"
|
||||||
((λ () "Hello World")) ; => "Hello World"
|
((λ () "Hello World")) ; => "Hello World"
|
||||||
|
|
||||||
;; Εκχωρούμε σε μια μετάβλητη την συνάρτηση
|
;; Εκχωρούμε σε μια μεταβλητή την συνάρτηση
|
||||||
(define hello-world (lambda () "Hello World"))
|
(define hello-world (lambda () "Hello World"))
|
||||||
(hello-world) ; => "Hello World"
|
(hello-world) ; => "Hello World"
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
|||||||
(lambda (name . args)
|
(lambda (name . args)
|
||||||
(format "Hello ~a, you passed ~a extra args" name (length args))))
|
(format "Hello ~a, you passed ~a extra args" name (length args))))
|
||||||
|
|
||||||
;; Και με λέξεις κλειδία
|
;; Και με λέξεις κλειδιά
|
||||||
(define (hello-k #:name [name "World"] #:greeting [g "Hello"] . args)
|
(define (hello-k #:name [name "World"] #:greeting [g "Hello"] . args)
|
||||||
(format "~a ~a, ~a extra args" g name (length args)))
|
(format "~a ~a, ~a extra args" g name (length args)))
|
||||||
(hello-k) ; => "Hello World, 0 extra args"
|
(hello-k) ; => "Hello World, 0 extra args"
|
||||||
@ -347,7 +347,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
|||||||
|
|
||||||
(eq? (string-append "foo" "bar") (string-append "foo" "bar")) ; => #f
|
(eq? (string-append "foo" "bar") (string-append "foo" "bar")) ; => #f
|
||||||
|
|
||||||
;; Το `eqv?' υποστηρίζει την σύκριση αριθμών αλλα και χαρακτήρων
|
;; Το `eqv?' υποστηρίζει την σύγκριση αριθμών αλλά και χαρακτήρων
|
||||||
;; Για άλλα ήδη μεταβλητών το `eqv?' και το `eq?' επιστρέφουν το ίδιο.
|
;; Για άλλα ήδη μεταβλητών το `eqv?' και το `eq?' επιστρέφουν το ίδιο.
|
||||||
(eqv? 3 3.0) ; => #f
|
(eqv? 3 3.0) ; => #f
|
||||||
(eqv? (expt 2 100) (expt 2 100)) ; => #t
|
(eqv? (expt 2 100) (expt 2 100)) ; => #t
|
||||||
@ -365,12 +365,12 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
|||||||
(equal? (list 3) (list 3)) ; => #t
|
(equal? (list 3) (list 3)) ; => #t
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; 5. Έλεχγος Ροής
|
;; 5. Έλεγχος Ροής
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;;; Συνθήκες (conditionals)
|
;;; Συνθήκες (conditionals)
|
||||||
|
|
||||||
(if #t ; έκφραση ελέχγου
|
(if #t ; έκφραση ελέγχου
|
||||||
"this is true" ; έκφραση then
|
"this is true" ; έκφραση then
|
||||||
"this is false") ; έκφραση else
|
"this is false") ; έκφραση else
|
||||||
; => "this is true"
|
; => "this is true"
|
||||||
@ -483,7 +483,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
|||||||
(values i (number->string i)))
|
(values i (number->string i)))
|
||||||
; => '#hash((1 . "1") (2 . "2") (3 . "3"))
|
; => '#hash((1 . "1") (2 . "2") (3 . "3"))
|
||||||
|
|
||||||
;; Υπάρχουν πολλά είδη απο προϋπάρχοντες τρόπους για να συλλέγουμε
|
;; Υπάρχουν πολλά είδη από προϋπάρχοντες τρόπους για να συλλέγουμε
|
||||||
;; τιμές από τους βρόχους
|
;; τιμές από τους βρόχους
|
||||||
|
|
||||||
(for/sum ([i 10]) (* i i)) ; => 285
|
(for/sum ([i 10]) (* i i)) ; => 285
|
||||||
@ -491,7 +491,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
|||||||
(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
|
||||||
|
|
||||||
@ -524,17 +524,17 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- δεν υπάρχει `d'
|
|||||||
(set! n (add1 n))
|
(set! n (add1 n))
|
||||||
n ; => 6
|
n ; => 6
|
||||||
|
|
||||||
;; Χρησιμοποιούμε τα boxes για να δηλώσουμε ρητά ότι μια μεταβητή
|
;; Χρησιμοποιούμε τα boxes για να δηλώσουμε ρητά ότι μια μεταβλητή
|
||||||
;; θα είναι mutable (θα μπορεί να αλλάξη η τιμή της)
|
;; θα είναι mutable (θα μπορεί να αλλάξει η τιμή της)
|
||||||
;; Αυτό είναι παρόμοιο με τους pointers σε άλλες γλώσσες
|
;; Αυτό είναι παρόμοιο με τους pointers σε άλλες γλώσσες
|
||||||
(define n* (box 5))
|
(define n* (box 5))
|
||||||
(set-box! n* (add1 (unbox n*)))
|
(set-box! n* (add1 (unbox n*)))
|
||||||
(unbox n*) ; => 6
|
(unbox n*) ; => 6
|
||||||
|
|
||||||
|
|
||||||
;; Πολλοί τύποι μεταβλητών στη Racket είναι αμετάβλητοι πχ τα ζεύγη, οι
|
;; Πολλοί τύποι μεταβλητών στη Racket είναι αμετάβλητοι π.χ. τα ζεύγη, οι
|
||||||
;; λίστες κτλ. Άλλοι υπάρχουν και σε μεταβλητή και σε αμετάβλητη μορφή
|
;; λίστες κτλ. Άλλοι υπάρχουν και σε μεταβλητή και σε αμετάβλητη μορφή
|
||||||
;; πχ αλφαριθμητικά, διανύσματα κτλ
|
;; π.χ. αλφαριθμητικά, διανύσματα κτλ.
|
||||||
(define vec (vector 2 2 3 4))
|
(define vec (vector 2 2 3 4))
|
||||||
(define wall (make-vector 100 'bottle-of-beer))
|
(define wall (make-vector 100 'bottle-of-beer))
|
||||||
;; Χρησιμοποιούμε το 'vector-set!' για να ανεώσουμε κάποια
|
;; Χρησιμοποιούμε το 'vector-set!' για να ανεώσουμε κάποια
|
||||||
@ -579,7 +579,7 @@ vec ; => #(1 2 3 4)
|
|||||||
(printf fmt (make-string n ch))
|
(printf fmt (make-string n ch))
|
||||||
(newline)))
|
(newline)))
|
||||||
|
|
||||||
;; Χρησιμοποιομε το 'require' για να πάρουμε όλα τα
|
;; Χρησιμοποιουμε το 'require' για να πάρουμε όλα τα
|
||||||
;; παρεχόμενα ονόματα από μία ενότητα
|
;; παρεχόμενα ονόματα από μία ενότητα
|
||||||
(require 'cake) ; το ' είναι για τοπική υποενότητα
|
(require 'cake) ; το ' είναι για τοπική υποενότητα
|
||||||
(print-cake 3)
|
(print-cake 3)
|
||||||
@ -634,7 +634,7 @@ vec ; => #(1 2 3 4)
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;; Οι μακροεντολές μας επιτρέπουν να επεκτείνουμε
|
;; Οι μακροεντολές μας επιτρέπουν να επεκτείνουμε
|
||||||
;; το συντακτικό μιάς γλώσσας.
|
;; το συντακτικό μιας γλώσσας.
|
||||||
|
|
||||||
;; Ας προσθέσουμε έναν βρόχο while
|
;; Ας προσθέσουμε έναν βρόχο while
|
||||||
(define-syntax-rule (while condition body ...)
|
(define-syntax-rule (while condition body ...)
|
||||||
@ -664,20 +664,20 @@ vec ; => #(1 2 3 4)
|
|||||||
;; (set! tmp other)
|
;; (set! tmp other)
|
||||||
;; (set! other tmp_1))
|
;; (set! other tmp_1))
|
||||||
|
|
||||||
;; Αλλά ακόμα υπάρχουν ακόμη μετασχηματισμοί του κώδικα, π.χ:
|
;; Αλλά ακόμα υπάρχουν ακόμη μετασχηματισμοί του κώδικα, π.χ.:
|
||||||
(define-syntax-rule (bad-while condition body ...)
|
(define-syntax-rule (bad-while condition body ...)
|
||||||
(when condition
|
(when condition
|
||||||
body ...
|
body ...
|
||||||
(bad-while condition body ...)))
|
(bad-while condition body ...)))
|
||||||
;; αυτή η μακροεντολή είναι χαλασμένη: δημιουγεί ατέρμονα βρόχο
|
;; αυτή η μακροεντολή είναι χαλασμένη: δημιουργεί ατέρμονα βρόχο
|
||||||
;; και αν προσπαθήσουμε να το χρησιμοποιήσουμε, ο μεταγλωττιστής
|
;; και αν προσπαθήσουμε να το χρησιμοποιήσουμε, ο μεταγλωττιστής
|
||||||
;; θα μπεί στον ατέρμονα βρόχο.
|
;; θα μπει στον ατέρμονα βρόχο.
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; 10. Συμβόλαια (Contracts)
|
;; 10. Συμβόλαια (Contracts)
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;; Τα συμβόλαια βάζουν περιορισμόυς σε τιμές που προέρχονται
|
;; Τα συμβόλαια βάζουν περιορισμούς σε τιμές που προέρχονται
|
||||||
;; από ενότητες (modules)
|
;; από ενότητες (modules)
|
||||||
(module bank-account racket
|
(module bank-account racket
|
||||||
(provide (contract-out
|
(provide (contract-out
|
||||||
@ -719,7 +719,7 @@ vec ; => #(1 2 3 4)
|
|||||||
(displayln "Hola mundo" out-port)
|
(displayln "Hola mundo" out-port)
|
||||||
(close-output-port out-port)
|
(close-output-port out-port)
|
||||||
|
|
||||||
;; Διαβάζουμε απο αρχείο ξανά
|
;; Διαβάζουμε από αρχείο ξανά
|
||||||
(define in-port (open-input-file "/tmp/tmp.txt"))
|
(define in-port (open-input-file "/tmp/tmp.txt"))
|
||||||
(displayln (read-line in-port))
|
(displayln (read-line in-port))
|
||||||
; => "Hello World"
|
; => "Hello World"
|
||||||
|
Loading…
Reference in New Issue
Block a user