쪽 끝에 놓일 제목의 위치를 정하는 하우스 스타일 규칙을 작성합니다. 절 제목은 아래에 2줄 이상 남을 때만 그 쪽에 두고, 장 제목은 언제나 새 쪽에서 시작합니다. 2줄과 1줄, 장 제목의 결과를 확인해 보세요.
예제는 플레이그라운드에서 실행할 수 있습니다. 터미널을 쓰려면 첫 프로그램을 따라 네이티브나 npm을 설치하세요.
규칙을 작성하고 실행하기
다음 프로그램 전체를 house-style.lspx로 저장하세요.
(define (제목-위치 남은-줄 장-제목?)
(if (and (>= 남은-줄 2) (not 장-제목?))
'(판단 그대로)
'(판단 다음-쪽으로)))
(제목-위치 5 #f)네이티브나 npm을 설치했다면 파일이 있는 디렉터리에서 실행하세요.
lispex house-style.lspx출력
(판단 그대로)명령의 종료 상태는 0이며 새 파일은 만들지 않습니다.
플레이그라운드에서도 같은 프로그램을 붙여 넣고 실행하면 같은 답이 나옵니다.
두 입력은 제목의 상태를 나타냅니다.
남은-줄은 제목 아래로 그 쪽에 남은 줄 수입니다.장-제목?은 장 제목이면#t, 절 제목이면#f입니다.
이 예제는 0 이상의 올바른 줄 수와 불리언을 받는다고 가정합니다. 호출 애플리케이션은 규칙을 호출하기 전에 입력을 확인합니다. 잘못된 입력은 오류 처리하기에서 다룹니다.
5줄이 남으면 제목 아래에 본문이 들어갈 자리가 있고 #f는 절 제목을 뜻합니다.
답은 리스트입니다. 그 안의 그대로 심볼은 제목을 이 쪽에 그대로 둔다는 뜻입니다.
2줄과 1줄 확인하기
house-style.lspx의 정의는 그대로 두세요.
마지막 호출을 다음 세 호출이 든 리스트로 바꿉니다.
(list (제목-위치 2 #f)
(제목-위치 1 #f)
(제목-위치 5 #t))lispex house-style.lspx를 다시 실행하세요.
플레이그라운드에서는 수정한 프로그램을 실행하면 됩니다.
출력
((판단 그대로) (판단 다음-쪽으로) (판단 다음-쪽으로))명령의 종료 상태는 다시 0이며 새 파일은 만들지 않습니다.
호출 순서대로 세 답을 읽으세요.
| 사례 | 답이 나온 이유 | 결정 |
|---|---|---|
| 2줄, 절 제목 | >=는 2를 포함함 | 그대로 |
| 1줄, 절 제목 | 1은 2보다 작음 | 다음 쪽으로 |
| 5줄, 장 제목 | (not 장-제목?)이 거짓임 | 다음 쪽으로 |
>=를 >로 바꾸면 2줄 사례도 다음 쪽으로 넘깁니다.
이 사례로 경계값을 포함하는지 확인할 수 있습니다.
이 규칙은 두 경우 모두에 다음-쪽으로를 씁니다.
자리가 모자란 경우와 장 제목을 구별하려면 조건 분기와 이유 이름을 따로 넣으세요.
조건이 답을 고르는 방법
and는 (>= 남은-줄 2)를 먼저 확인합니다. 거짓이면 멈춥니다.
참이면 (not 장-제목?)을 확인합니다. if는 선택한 분기만 평가합니다.
작은따옴표는 선택한 결정 리스트를 데이터로 유지합니다.
조판 애플리케이션은 쪽을 짜면서 남은-줄을 세어 규칙에 전달합니다.
같은 두 값과 같은 실행 조건을 주면 이 규칙은 같은 결과를 냅니다.
출판사의 편집자가 하우스 스타일을 정하고 규칙을 검토합니다. 애플리케이션은 입력 데이터의 출처를 확인하고 답을 지면에 반영할지 결정합니다.
연습
절 제목 아래에 3줄 이상 남을 때만 제목을 그 쪽에 두도록 바꾸세요. 제목을 그대로 두는 가장 작은 줄 수와 다음 쪽으로 넘기는 가장 큰 줄 수를 확인하세요.
답 하나 보기
house-style.lspx에서 (>= 남은-줄 2)를 (>= 남은-줄 3)으로 바꿉니다.
마지막 호출 리스트는 다음과 같이 바꿉니다.
(list (제목-위치 3 #f)
(제목-위치 2 #f))lispex house-style.lspx를 다시 실행하세요.
출력
((판단 그대로) (판단 다음-쪽으로))명령의 종료 상태는 0이며 새 파일은 만들지 않습니다.
다음 실행 장소 고르기
2줄과 1줄의 결과를 설명할 수 있다면 애플리케이션에서 리스펙스 실행하기로 이어 가세요.
다른 작업은 아래 안내에서 시작하세요.
- 소스를 자세히 읽으려면 소스 텍스트와 리더
- 실행을 기록하고 확인하려면 결정 기록
- 소스를 이미지로 만들고 복원하려면 리스펙스 이미지
- 서명자를 인증하고 직접 고른 요청으로 다시 확인하려면 리스펙스 바우치