입출력과 애플리케이션 권한

리스펙스 프로그램에서 값을 출력하고 외부 입력과 행동을 호출 애플리케이션에서 처리합니다.

리스펙스 프로그램에서 텍스트와 값을 출력할 수 있습니다. 호출 애플리케이션은 외부 데이터를 전달하고 반환된 결정에 따라 행동할지 판단합니다.

값 출력하기

네이티브 리스펙스를 설치한 뒤 다음 전체 소스를 output.lspx로 저장하세요.

LISPEX
(begin (display "answer=") (write 42) (newline) 0)

파일을 실행합니다.

SH
lispex run output.lspx

명령은 다음 텍스트를 출력하고 종료 코드 0으로 끝납니다. 생성 파일은 없습니다.

answer=42
0

프로그램은 answer=42와 줄바꿈을 직접 출력합니다. 그다음 네이티브가 형식의 반환값 0을 한 줄에 출력합니다.

프로시저출력 내용
display사람이 읽을 텍스트
write다시 읽을 수 있는 리스펙스 표기의 값
newline줄바꿈 하나
printlndisplay와 같은 텍스트 뒤에 줄바꿈

네 프로시저는 모두 값 0개를 반환합니다. 대화형 실행은 최상위 형식이 끝나면 명시적 출력 뒤에 반환값을 출력합니다. 배치 실행은 반환값을 따로 기록하고 명시적 출력만 stdout에 넣습니다.

실행이 멈췄을 때 출력 읽기

자원 프로파일이 출력 바이트 한도를 정합니다. 네이티브의 전체 소스 실행은 일반 오류와 자원 종료를 다르게 처리합니다.

결과stdout종료 코드
실행 성공명시적 출력과 반환값0
일반 실행 오류오류 전에 기록한 출력1
자원 한도 도달비어 있음2

예를 들어 다음 파일을 output-error.lspx로 저장하세요.

LISPEX
(display "before\n")
(car 1)
SH
lispex run output-error.lspx

stdout에는 before와 줄바꿈이 남습니다. stderr는 다음과 같습니다. 종료 코드는 1이며 생성 파일은 없습니다.

E310 output-error.lspx:2:1 car: expected a pair, got 1

CLI는 전체 소스를 읽고 축약 문법을 핵심 형식으로 바꾼 뒤 평가합니다. 그 준비 과정에서 소스 오류가 나면 stdout은 비어 있습니다. 자원 종료는 자원 문서에서 확인하세요.

외부 작업을 애플리케이션에 맡기기

지원하는 프로시저와 호스트 권한은 서로 다른 것을 정합니다. 프로시저는 규칙이 계산할 수 있는 일을 정합니다. 권한은 호출 애플리케이션이 수행할 수 있는 외부 행동을 정합니다.

작업처리 주체
값과 텍스트 출력리스펙스 출력 프로시저
소스 파일과 표준 입력 선택CLI를 실행하는 쪽
파일과 네트워크 접근호출 애플리케이션의 어댑터
시각과 난수애플리케이션이 명시적 입력으로 전달
데이터베이스와 트랜잭션애플리케이션이 상태와 확정 시점 관리
결제와 배포 등 외부 행동애플리케이션이 결정을 확인한 뒤 자체 정책 적용

네이티브 MCP는 로컬 표준 입출력으로 소스와 선택적 입력값과 결과를 주고받습니다. 이때 정해진 바이트 한도와 시간 한도를 적용합니다. 애플리케이션 어댑터는 검토한 데이터를 규칙에 전달하고 반환된 결정을 사용합니다.

애플리케이션에서 리스펙스 실행하기 · 결정 규칙