상수 항 스트림
상수 항 스트림
상수 항(Constant term)을 소스/싱크로 취급하게 해주는 스트림 술어들을 설명해요.
본문
소개
상수 항 스트림을 사용하면 상수 항(원자, 문자 리스트 또는 문자 코드 리스트)을 스트림을 연관시켜 소스/싱크로 간주할 수 있어요. 상수 항 스트림에서 읽으면 표준 파일에서 읽은 것처럼 상수 항의 문자들이 전달돼요. 상수 항 스트림에 쓰인 문자들은 스트림이 닫힐 때 최종 상수 항을 형성하도록 저장돼요.
이 절에서 설명하는 내장 술어들은 입력 또는 출력을 위해 상수 항 스트림을 열고 닫을 수 있게 해줘요. 그러나 아주 자주, 상수 항 스트림은 한 번만 읽거나 쓰고 닫도록 만들어져요. 그런 스트림의 생성과 파괴를 피하기 위해 GNU Prolog는 상수 항으로/으로부터 일회성 입출력을 수행하는 여러 내장 술어를 제공해요(8.15절).
open_input_atom_stream/2, open_input_chars_stream/2, open_input_codes_stream/2
Templates
open_input_atom_stream(+atom, -stream)
open_input_chars_stream(+character_list, -stream)
open_input_codes_stream(+character_code_list, -stream)
Description
open_input_atom_stream(Atom, Stream)-Stream을 데이터가Atom의 문자들인 새 입력 텍스트 스트림과 연관된 스트림 항과 통일.open_input_chars_stream(Chars, Stream)- 데이터가 문자 리스트Chars의 내용인 점만 제외하면open_input_atom_stream/2와 비슷.open_input_codes_stream(Codes, Stream)- 데이터가 문자 코드 리스트Codes의 내용인 점만 제외하면open_input_atom_stream/2와 비슷.
Errors
Stream이 변수가 아님 -uninstantiation_error(Stream)Atom이 변수 -instantiation_errorChars가 부분 리스트이거나 변수인 요소 E를 가진 리스트 -instantiation_errorCodes가 부분 리스트이거나 변수인 요소 E를 가진 리스트 -instantiation_errorAtom이 변수도 원자도 아님 -type_error(atom, Atom)Chars가 부분 리스트도 리스트도 아님 -type_error(list, Chars)Codes가 부분 리스트도 리스트도 아님 -type_error(list, Codes)Chars리스트의 어떤 요소 E가 변수도 문자도 아님 -type_error(character, E)Codes리스트의 어떤 요소 E가 변수도 정수도 아님 -type_error(integer, E)Codes리스트의 어떤 요소 E가 정수이지만 문자 코드가 아님 -representation_error(character_code)
Portability: GNU Prolog 술어.
close_input_atom_stream/1, close_input_chars_stream/1, close_input_codes_stream/1
Templates
close_input_atom_stream(+stream_or_alias)
close_input_chars_stream(+stream_or_alias)
close_input_codes_stream(+stream_or_alias)
Description
close_input_atom_stream(SorA)- 스트림 항 또는 별칭SorA와 연관된 상수 항 스트림을 닫음.SorA는open_input_atom_stream/2(8.11.1절)로 열린 스트림이어야 함.close_input_chars_stream(SorA)- 문자 리스트 스트림에 대해 비슷하게 동작.close_input_codes_stream(SorA)- 문자 코드 리스트 스트림에 대해 비슷하게 동작.
Errors
SorA가 변수 -instantiation_errorSorA가 변수도 스트림 항 또는 별칭도 아님 -domain_error(stream_or_alias, SorA)SorA가 열린 스트림과 연관되지 않음 -existence_error(stream, SorA)SorA가 출력 스트림 -permission_error(close, stream, SorA)SorA가 스트림 항 또는 별칭이지만 상수 항 스트림을 가리키지 않음 -domain_error(term_stream_or_alias, SorA)
Portability: GNU Prolog 술어.
open_output_atom_stream/1, open_output_chars_stream/1, open_output_codes_stream/1
Templates
open_output_atom_stream(-stream)
open_output_chars_stream(-stream)
open_output_codes_stream(-stream)
Description
open_output_atom_stream(Stream)-Stream을 새 출력 텍스트 스트림과 연관된 스트림 항과 통일. 이 스트림에 쓰인 모든 문자는 수집되며, 스트림이close_output_atom_stream/2(8.11.5절)로 닫힐 때 원자로 반환.open_output_chars_stream(Stream)- 결과가 문자 리스트가 되는 점만 제외하면open_output_atom_stream/1와 비슷.open_output_codes_stream(Stream)- 결과가 문자 코드 리스트가 되는 점만 제외하면open_output_atom_stream/1와 비슷.
Errors
Stream이 변수가 아님 -uninstantiation_error(Stream)
Portability: GNU Prolog 술어.
close_output_atom_stream/2, close_output_chars_stream/2, close_output_codes_stream/2
Templates
close_output_atom_stream(+stream_or_alias, ?atom)
close_output_chars_stream(+stream_or_alias, ?character_list)
close_output_codes_stream(+stream_or_alias, ?character_code_list)
Description
close_output_atom_stream(SorA, Atom)- 스트림 항 또는 별칭SorA와 연관된 상수 항 스트림을 닫음.SorA는open_output_atom_stream/1(8.11.4절)로 열린 스트림과 연관되어야 함.Atom은 스트림에 쓰인 모든 문자로 형성된 원자와 통일.close_output_chars_stream(SorA, Chars)- 문자 리스트 스트림에 대해 비슷하게 동작.close_output_codes_stream(SorA, Codes)- 문자 코드 리스트 스트림에 대해 비슷하게 동작.
Errors
SorA가 변수 -instantiation_errorAtom이 변수도 원자도 아님 -type_error(atom, Atom)Chars가 부분 리스트도 리스트도 아님 -type_error(list, Chars)Codes가 부분 리스트도 리스트도 아님 -type_error(list, Codes)Chars리스트의 어떤 요소 E가 변수도 문자도 아님 -type_error(character, E)Codes리스트의 어떤 요소 E가 변수도 정수도 아님 -type_error(integer, E)Codes리스트의 어떤 요소 E가 정수이지만 문자 코드가 아님 -representation_error(character_code)SorA가 변수도 스트림 항 또는 별칭도 아님 -domain_error(stream_or_alias, SorA)SorA가 열린 스트림과 연관되지 않음 -existence_error(stream, SorA)SorA가 입력 스트림 -permission_error(close, stream, SorA)SorA가 스트림 항 또는 별칭이지만 상수 항 스트림을 가리키지 않음 -domain_error(term_stream_or_alias, SorA)
Portability: GNU Prolog 술어.