2010-06-01 8 views
3

배열에서 어떻게 배열을 사용할 수 있습니까?배열 내의 배열/메모 화

특히 필자는 memoization을 사용하여 재귀적인 fibonacci 프로 시저를 구현하려고 시도하고 있습니다. Scheme에도 배열이 존재합니까?

그렇지 않은 경우 어떻게 메모를 구현할 수 있습니까?

+0

그런 질문에 대해서는 사용중인 구현을 지정하는 것이 매우 유용합니다. Memoization은 대부분의 구현체에 라이브러리가 포함될 Scheme에서 일반적으로 충분합니다. –

+0

태그로 구현했지만, sgm이 그것을 편집 한 것으로 보입니다 (아마 내가 사용하는 것으로 태그를 작성한 것 같아요). Pretty Big Scheme (DrScheme)을 사용하고 있습니다. – Cam

+0

사실, 나는 방금 DrScheme의 언어 선택 메뉴에서 PBS를 선택했습니다 - 어떤 것을 사용해야하는지 잘 모르겠습니다. Apprently PLT와 r5rs가 인기가 있습니까? – Cam

답변

5

Scheme에는 배열이 있지만 이들은 vectors이라고합니다. Perl이나 Javascript와 같은 다른 언어 나 C++과 같은 다른 언어 에서처럼 크기가 조정되지 않는다는 점에 유의하십시오. 당신은 더 큰 것을 만들어야하고 구식의 내용을 복사해야합니다.

특히 메모 작성 및 동적 프로그래밍에 대해 더 알고 싶다면 무료 서적 Concrete Abstractions의 12 장을 읽으십시오.

+2

'크기가 조정되지 않습니다. 당신은 더 큰 것을 만들어야하고 쓸데없는 것들의 내용을 복사해야합니다. "다른 언어의 배열과 똑같이 들린다. 내가 알고 있어야하는 미묘한 차이점이 있는가? (scheme vector와 c arrays 사이에) 감사! – Cam

+0

그 구성표 벡터 요소는 "_____ 배열"로 국한되지 않고 다른 변수 나 단점 셀과 같은 개체를 포함 할 수 있습니다. –

1

이것은 직접적인 대답이 아니므로 downvote 등으로 자유롭게 생각하십시오. PLT를 사용 중이며 메모가 필요한 경우 Dave Herman의 memoize package을 확인해야합니다. 또한 사기 도서관에서 메모 기능을 사용할 수도 있습니다.

+1

꽤 큰 계획 인 PLT입니까? 나는 'PLT Scheme'이 무엇인지에 관해서는 다소 혼란 스럽다. – Cam

+2

예, "Pretty big"은 사용중인 PLT Scheme 언어의 모든 부분 인 DrScheme의 언어 레벨 이름입니다. (그리고 프로젝트는 요즘 같은 혼란을 피하기 위해 라켓으로 바뀌고 있습니다.) –

관련 문제