I/O, 모듈, 능력, 명시적 효과

순수 실행 프로필은 호스트 효과를 일반 평가 바깥에 둡니다. 레퍼런스 런타임이 드러내는 것은 고정된 출력 동작뿐입니다.

언제 필요한가요?

이 페이지는 결정적 게스트 평가와 호스트 효과 사이의 경계를 긋습니다. 텍스트를 명시적으로 출력할 때는 내장 출력 프로시저를 쓰세요. 파일과 네트워크, 시간, 무작위, 외부 행위는 호출하는 애플리케이션 쪽에 두세요.

실행으로 확인하기

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

관측 결과

OUTPUT
answer=42
0

예제 읽기

display는 문자열 내용을 그대로 씁니다. write42를 정규 게스트 표기로 씁니다. newline은 줄바꿈 하나를 붙입니다. printlndisplay 다음에 그 줄바꿈을 붙인 것과 정확히 같습니다. 마지막 0은 CLI가 찍는 프로그램 결과이므로 명시적 출력보다 뒤에 나옵니다.

이 순서로 생각하세요

  • display는 문자열의 따옴표를 빼고 문자를 글리프로 씁니다. write는 다시 읽어 들일 수 있는 따옴표와 이스케이프, 문자 표기를 씁니다.
  • 네 프로시저는 모두 0개 값을 반환합니다. 명시적 출력과 CLI 자동 출력은 하나의 stdout 순서를 함께 씁니다. 완료된 최상위 값은 영수증이 별도 투영으로 보존합니다.
  • 뒤의 식이 실패해도 그전에 쓴 출력은 남습니다.
  • CLI의 파일·표준입력 선택과 소스 라벨은 호출 쪽 관심사입니다. 새 언어 바인딩이 아닙니다.
  • 외부 능력은 명시적이어야 하고 버전이 붙어야 합니다. 호스트 전역 fallback으로 찾아내는 방식은 안 됩니다.
  • Native MCP도 이런 능력을 하나도 주지 않습니다. lispex_eval은 로컬 stdio로 소스와 선택 datum 하나를 받고 제한된 관측값만 돌려줍니다.

빠르게 고르기

작업리스펙스 안에서 가능?대안
정규 값 출력예: write다시 읽을 수 있는 표기가 중요할 때
사람용 텍스트 출력예: display, newline, println순서가 결정적
파일·네트워크 접근아니요명시적 호출 경계에서 수행
시계·무작위아니요선택한 값을 입력으로 제공
결정에서 외부 행위 실행아니요소비자 코드가 승인하고 실행

흔한 오해

포트와 파일시스템, 네트워크, 시간, 난수, 무제한 호스트 평가는 현재 순수 프로필에 없습니다.

현재 경계

  • 출력 버퍼에는 한도가 있습니다. 이 프로시저들 뒤에 주변 포트나 파일, 네트워크 핸들이 숨어 있지는 않습니다.
  • 타깃 언어 출력은 리스펙스 실행 모드가 아닙니다.

다음으로

호스트 경계에 맞는 제품은 실행 표면 선택에서 고를 수 있습니다. 행위를 실행하는 대신 이름 붙은 데이터를 돌려주는 법은 결정 규칙에서 보여 줍니다.

실행 표면 선택 · 결정 규칙