reading large data file
; The /direct refinement opens an unbuffered port.
; This is useful to access files a portion at a time,
; such as when a file is too large to be held in memory.
fp: open/direct %file.txt
; Reading the data with a copy function will move the port's head forward.
; & return none when the port has reached its end
while [data: copy/part fp 100000] [
; process with data
]
close fp
ref ports