4.13 Streams
TBoS p.113-121, SD
The zero-place calls '(stinput)' and '(stoutput)' return the standard input and output streams.
In Shen, streams are created to read from or to files. The function to create a stream is
(open string direction ). string is a pathname to the file and direction
is 'in' for source and 'out' for sink.
The primitive read and write functions for streams are 'read-byte' and 'write-byte'. These
read a byte from a source stream or print a string to a sink stream. 'close' closes a stream.
This example reads a binary file.
(0-) (set *mystream* (open "gate-of-consciousness.ico" in))
#INPUT BUFFERED FILE-STREAM (UNSIGNED-BYTE 8) #P"gate-of-consciousness.ico"
(1-) (read-byte (value *mystream*))
0
(2-) (read-byte (value *mystream*))
0
(3-) (read-byte (value *mystream*))
1
(4-) (close (value *mystream*))
[] |
|
1. Introduction
2. License
3. History
4. The Core Language
4.1 Base Types
4.1.1 Symbols
4.1.2 Strings
4.1.3 Numbers
4.2 Function Applications
4.3 The Top Level
4.4 Arithmetic
4.5 Comments
4.6 Sequences
4.6.1 Lists
4.6.2 Tuples
4.6.3 Vectors
4.7 lambda and let
4.8 Global Assignments
4.9 Higher Order Functions
4.10 Lazy Evaluation
4.11 I/O
4.12 Loading Files
4.13 Streams
4.14 Exceptions
4.15 Hashing
4.16 Property Lists
4.17 Eval
5 Defining Functions
5.1 Partial Functions
5.2 List Handling Functions
5.3 String Handling Functions
5.4 Tuple Handling Functions
5.5 Vector Handling Functions
5.6 Guards
5.7 Backtracking
5.8 Writing in Kλ
5.9 Macros
6. Packages
7. Shen-YACC
7.1 Recognisor Generator
7.2 Semantic Actions
8. Shen Prolog
8.1 Sample Programs
9. Types
9.1 Types and Constructors
9.2 Functions and Types
9.3 Synonyms
10 Sequent Calculus
10.1 Recursive Types
10.2 Exotic Types
10.2.1 Dependent Types
10.2.2 Negative Types
10.2.3 Subtypes
10.2.4 The Type of All Sets
11 Glossary of Functions
12 The Syntax of Shen
|