`-` — 뺄셈·부호 반전 함수
- — 뺄셈·부호 반전 함수
인자를 하나만 받을 때와 여러 개 받을 때 행동이 달라지는 함수를 보면 처음엔 어리둥절할 수 있어요. 커먼 리스프의 뺄셈 함수 -가 정확히 그런 함수예요. 인자 개수에 따라 부호 반전과 뺄셈 두 가지 일을 해요.
본문
시그니처
- number => negation
- minuend &rest subtrahends+ => difference
인자와 반환값
number,minuend,subtrahend— 숫자.negation,difference— 숫자.
설명
함수 -는 뺄셈과 부호 반전을 수행해요.
- 숫자 하나만 주어지면 그 숫자의 부호를 반전(negation) 시킨 값을 반환해요.
- 인자가 둘 이상이면
minuend(피감수)에서 모든subtrahend(감수)를 빼서 그 결과를 반환해요.
-는 필요한 타입 변환(type conversion)도 수행해요. 예를 들어 정수에서 실수를 빼는 식으로 타입이 섞여 있어도 적절히 변환해 계산해요.
예제
(- 55.55) => -55.55
(- #c(3 -5)) => #C(-3 5)
(- 0) => 0
(eql (- 0.0) -0.0) => true
(- #c(100 45) #c(0 45)) => 100
(- 10 1 2 3 4) => 0
복소수에도 부호 반전이 적용되고, 인자를 여럿 주면 순서대로 모두 빼는 걸 확인할 수 있어요.
예외 상황
- 어떤 인자가 숫자가 아니면
type-error를 신호할 수 있어요. arithmetic-error를 신호할 수도 있어요.
주의
없음.
함께 보기
+,*,/함수