미란다 (프로그래밍 언어)
미란다는 데이비드 터너가 개발한 순수 함수형 프로그래밍 언어이다. 1985년에 출시되었으며, 기존의 함수형 언어인 SASL과 KRC의 후속으로 개발되었다. 비공개 언어였으며, 연구 및 교육 목적으로 널리 사용되었다. Haskell과 같은 이후의 함수형 언어에 큰 영향을 미쳤다.
특징
- 순수 함수형: 미란다는 부작용이 없는 순수 함수형 언어이다. 함수는 오직 입력에 의해서만 출력이 결정되며, 상태 변화를 일으키지 않는다.
- 지연 평가 (Lazy Evaluation): 미란다는 필요할 때까지 계산을 미루는 지연 평가 방식을 채택하고 있다. 이는 무한 리스트와 같은 개념을 쉽게 구현할 수 있도록 한다.
- 강력한 타입 시스템: 미란다는 정적 타입 시스템을 가지고 있으며, 타입 추론을 지원한다. 컴파일 시점에 타입 오류를 검출하여 프로그램의 안정성을 높인다.
- 리스트 내포 (List Comprehension): 수학적인 집합 표기법과 유사한 방식으로 리스트를 생성하는 리스트 내포 기능을 제공한다.
- 고차 함수 (Higher-Order Function): 함수를 인자로 받거나 함수를 반환하는 고차 함수를 지원하여, 코드의 재사용성을 높인다.
영향
미란다는 Haskell과 같은 이후의 함수형 언어 설계에 큰 영향을 미쳤다. 특히 Haskell의 타입 클래스(type class)는 미란다의 overloaded operator에서 아이디어를 얻었다.
예제
다음은 미란다에서 팩토리얼 함수를 정의하는 예제이다.
factorial 0 = 1
factorial n = n * factorial (n-1)