내가 그 용어 재귀 적으로 정의 된 목록을 만드는 데 관심 (즉 term[i]
의 함수이다 term[i-1]
, 하지 의 기능 i-1
).
나는 makelist
연속적으로 작동 한다면 이전 용어를 부르는 것이 문제가되지 않아야한다고 생각했습니다. 그러나 문서 는 용어 생성 방법을 명시 적으로 다루지 않습니다.
초기 시도 (주의 : 여기서 출력은 색인의 기능을 사용하여 얻을 수 있지만 요점은에서 이전 용어를 호출하는 기능을 테스트하는 간단한 예제를 만드는 것이 었습니다 makelist
) :
test:
makelist(block([ ],
/* list item set to 1 for first term of the list, and to previous list item, thereafter */
if i = 1
then addend
else test[i-1]
)
, i, 5);
그러나 이것은 반환 [1, test[1], test[2], test[3], test[4] ]
되므로 실제로 값에 액세스하지 않는 것 같습니다 test
.
초기화를 포함한 다양한 실험을 시도했습니다 test
. 블록에서 테스트하기위한 호출 (예 block([ test:test ], ...
:)을 포함하지만 원하는 결과를 얻지 못했습니다.
이것은 좋은 질문입니다. 의 결과 makelist
는 할당 된 변수와 연관되지 않으므로 ( test
위 예제에서) makelist
결과를 구성하는 동안 test[i - 1]
이전 항목 인지 알 수있는 방법이 없습니다 . 내부에서 이전 항목에 액세스 할 수있는 방법이 없다고 생각합니다 makelist
(예 : Lisp 프로그래밍 등).
소개 makelist
되는 직렬 또는 병렬, 나는 99 % 확신 요소를 순서대로 구성되어 있다고 해요. 예를 들어 makelist(print(i), i, 1, 10)
1에서 10까지의 숫자를 인쇄합니다.
용어가 이전 용어에 종속 된 경우이를 수행하는 한 가지 방법은 빈 목록 (예 :) x: makelist(0, n)
을 만든 다음 요소 (예 :)를 반복하는 것 x[1]: FOO; for i:2 thru n do x[i]: x[i - 1] + something
입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다