mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-26 00:31:39 +03:00
Merge pull request #476 from cmpitg/master
[racket/en] Add input/output section for Racket
This commit is contained in:
commit
ffaaa44e74
@ -6,6 +6,7 @@ contributors:
|
|||||||
- ["th3rac25", "https://github.com/voila"]
|
- ["th3rac25", "https://github.com/voila"]
|
||||||
- ["Eli Barzilay", "https://github.com/elibarzilay"]
|
- ["Eli Barzilay", "https://github.com/elibarzilay"]
|
||||||
- ["Gustavo Schmidt", "https://github.com/gustavoschmidt"]
|
- ["Gustavo Schmidt", "https://github.com/gustavoschmidt"]
|
||||||
|
- ["Duong H. Nguyen", "https://github.com/cmpitg"]
|
||||||
---
|
---
|
||||||
|
|
||||||
Racket is a general purpose, multi-paradigm programming language in the Lisp/Scheme family.
|
Racket is a general purpose, multi-paradigm programming language in the Lisp/Scheme family.
|
||||||
@ -600,6 +601,45 @@ vec ; => #(1 2 3 4)
|
|||||||
;; expected: positive?
|
;; expected: positive?
|
||||||
;; given: -5
|
;; given: -5
|
||||||
;; more details....
|
;; more details....
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; 11. Input & output
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
;; Racket has this concept of "port", which is very similar to file
|
||||||
|
;; descriptors in other languages
|
||||||
|
|
||||||
|
;; Open "/tmp/tmp.txt" and write "Hello World"
|
||||||
|
;; This would trigger an error if the file's already existed
|
||||||
|
(define out-port (open-output-file "/tmp/tmp.txt"))
|
||||||
|
(displayln "Hello World" out-port)
|
||||||
|
(close-output-port out-port)
|
||||||
|
|
||||||
|
;; Append to "/tmp/tmp.txt"
|
||||||
|
(define out-port (open-output-file "/tmp/tmp.txt"
|
||||||
|
#:exists 'append))
|
||||||
|
(displayln "Hola mundo" out-port)
|
||||||
|
(close-output-port out-port)
|
||||||
|
|
||||||
|
;; Read from the file again
|
||||||
|
(define in-port (open-input-file "/tmp/tmp.txt"))
|
||||||
|
(displayln (read-line in-port))
|
||||||
|
; => "Hello World"
|
||||||
|
(displayln (read-line in-port))
|
||||||
|
; => "Hola mundo"
|
||||||
|
(close-input-port in-port)
|
||||||
|
|
||||||
|
;; Alternatively, with call-with-output-file you don't need to explicitly
|
||||||
|
;; close the file
|
||||||
|
(call-with-output-file "/tmp/tmp.txt"
|
||||||
|
#:exists 'update ; Rewrite the content
|
||||||
|
(λ (out-port)
|
||||||
|
(displayln "World Hello!" out-port)))
|
||||||
|
|
||||||
|
;; And call-with-input-file does the same thing for input
|
||||||
|
(call-with-input-file "/tmp/tmp.txt"
|
||||||
|
(λ (in-port)
|
||||||
|
(displayln (read-line in-port))))
|
||||||
```
|
```
|
||||||
|
|
||||||
## Further Reading
|
## Further Reading
|
||||||
|
Loading…
Reference in New Issue
Block a user