배리 제이는 자신의 저서 에서 대담한 주장을한다. 기본적으로 프로그램의 핵심에서 모든 것이 원자 적이거나 구성되었다고 말함으로써. 그런 다음이 컴포지션 관계를 탐색하여 쉽게 반복, 필터링, 업데이트 할 수 있습니다.
이것이 컴퓨터 언어에 대한 컴퓨터 과학 의 새로운 개척 인가? 아니면 우리는 다시 LISP로 돌아가고 있는가?
배리 제이는 자신의 저서 에서 대담한 주장을한다. 기본적으로 프로그램의 핵심에서 모든 것이 원자 적이거나 구성되었다고 말함으로써. 그런 다음이 컴포지션 관계를 탐색하여 쉽게 반복, 필터링, 업데이트 할 수 있습니다.
이것이 컴퓨터 언어에 대한 컴퓨터 과학 의 새로운 개척 인가? 아니면 우리는 다시 LISP로 돌아가고 있는가?
답변:
Barry Jay의 최근 작업에는 익숙하지 않지만 그의 오래된 작업에는 Lisp에서 수행 할 수없는 작업이 포함됩니다 . 유형에 추가 정보가 제공되기 때문입니다.
예를 들어, Lisp 데이터 구조의 크기를 정의한다고 가정하십시오. 원자의 경우 1이고 n 개의 원자 목록의 경우 n 이며,보다 일반적으로 size (x) + size (y)입니다 (cons x y).
이제 믹스에 유형을 넣습니다. 리스트의 크기는 길이입니다. 이제 원자 목록의 크기는 얼마입니까? 이 데이터 구조를 목록 (요소가 원자 목록이 됨)으로 간주하면 답이 목록의 길이입니다. 이 데이터 구조를 목록 목록에 저장되는 원자를 포함하는 것으로 간주하면 답은 요소 목록의 길이의 합입니다.
유형을 사용하면 원시 데이터의이 두보기 (모양)를 구별 할 수 있습니다. (List) (List Atom)과 (List List) (Atom)을 구별 할 수있는 유형 시스템이 필요합니다. 이 구별의 가장 일반적인 구현은 유형 클래스를 사용하는 것입니다 (하스켈에서와 같이).