자기참조 구조체 예제

Prefab : 구조체 형식 선언 이나 예제 인스턴스에 대 한 사전 액세스 없이 누구나 언제든지 인스턴스를 검사하거나 만들 수 있습니다. 따라서 식 판독기는 인스턴스를 직접 제조할 수 있습니다. 인스턴스에는 생성자 가드 또는 속성이 있을 수 없습니다. 프리팹 구조 형식은 다른 프리팹 구조 형식을 수퍼타이브로 가질 수 있으며, 가변 필드를 가질 수 있으며 자동 필드를 가질 수 있습니다. 이러한 차원의 변형은 서로 다른 프리팹 구조 유형에 해당하며 구조 체 유형 이름의 인쇄된 형식은 모든 관련 세부 정보를 인코딩합니다. 구조체 양식은 구조체 형식의 인스턴스에서 필드에 나타날 수 있는 값 종류에 제약 조건을 배치하지 않습니다. 예를 들어 (posn “apple” #f)는 “apple” 및 #f posn 인스턴스의 명백한 사용에 대해 유효한 좌표가 아니더라도 posn 의 인스턴스를 생성합니다. 숫자로 요구하는 것과 같은 필드 값에 대한 제약 조건을 적용하는 것은 일반적으로 계약의 작업입니다. BBC의 일자리 감축 보도와 같은 자기 참조는 때때로 미디어에서 발생합니다. 위키백과에 대한 위키백과 의 기사와 같이 자신에 대한 기사를 특징으로 하는 주목할 만한 백과사전이 필요할 수 있습니다. 구조체 ID 옆에 슈퍼 ID를 제공하는 대안입니다.

구조체 형식(식이 아닌)의 이름 대신 super expr은 구조체 형식 설명자 값을 생성해야 합니다. #:super의 장점은 구조체 형식 설명자가 값이므로 프로시저에 전달할 수 있다는 것입니다. 위의 필드 이름 종류는 프리팹 구조 형식을 찾는 데 는 중요하지 않습니다. 이름 새싹과 필드의 수는 중요합니다. 동시에, 3개의 필드가 있는 조립식 구조형 새싹은 단일 필드를 가진 것과는 다른 구조 유형입니다: 자체 참조도 몇 가지 중요한 응용 프로그램을 가지고 있습니다. 괴델의 불완전성 정리의 증거, 수학 및 논리에서 가장 광범위한 개념 중 하나, 자신의 구조를 설명 할 수있는 공식 시스템에 의존. 튜링은 컴퓨터 과학의 중요한 문제인 정지 문제에 대한 증거를 제공하기 위해 자체 참조 컴퓨터 프로그램의 아이디어를 사용했습니다. 자체 참조 데이터 구조는 기본적으로 자체 종류의 구조에 대한 포인터인 하나 이상의 멤버를 포함하는 구조 정의입니다.

이러한 구조의 사슬은 다음과 같이 표현될 수 있다. 위의 예에서 `링크`는 `노드` 형식의 구조에 대한 포인터입니다. 따라서 구조 `노드`는 참조 포인터로 `링크`가 있는 자체 참조 구조입니다. 고려해야 할 중요한 점은 기본적으로 가비지 값이 포함되어 있으므로 포인터가 액세스하기 전에 올바르게 초기화되어야한다는 것입니다. struct-id : 필드 id의 수만큼 인수를 취하고 구조체 형식의 인스턴스를 반환하는 생성자 함수입니다. 위의 예에서 우리는 `ob1`, `ob2`와 `ob3`가 자체 참조 구조 `노드`의 세 가지 객체임을 알 수 있습니다. 그리고 그들은 그들 중 누구도 쉽게 서로의 데이터에 액세스 할 수있는 방식으로 자신의 링크를 사용하여 연결되어 있습니다.