, 장 12.7의 끝에서 그는 말한다 :꼬리 재귀 조 암스트롱의 책에서
이 쉽게 방지", 당신은 루프로 (반환하지 함수 F를 작성하는 경우()), F를 호출 한 후에는 절대로 아무것도 호출하지 말고,리스트 또는 터플 생성자에서 F를 사용하지 마십시오. "
발췌 : Joe Armstrong. "프로그래밍 Erlang, Second Edition."
그는 무엇을 의미합니까? "목록 또는 튜플 생성자에서 F를 사용하지 마십시오."
감사
, 장 12.7의 끝에서 그는 말한다 :꼬리 재귀 조 암스트롱의 책에서
이 쉽게 방지", 당신은 루프로 (반환하지 함수 F를 작성하는 경우()), F를 호출 한 후에는 절대로 아무것도 호출하지 말고,리스트 또는 터플 생성자에서 F를 사용하지 마십시오. "
발췌 : Joe Armstrong. "프로그래밍 Erlang, Second Edition."
그는 무엇을 의미합니까? "목록 또는 튜플 생성자에서 F를 사용하지 마십시오."
감사
나는 책을 가지고 있지 않지만, 문자 그대로 당신이 다음과 같은 상황을 방지해야한다는 것을 의미한다 :
loop() ->
receive
M -> do_stuff()
end,
loop()
end.
some_func() ->
foo(),
loop(),
% Don't do this
bar() % bar will never be called
end.
other_func() ->
% Don't do this
T = {test,loop()}, % T will never be created
% Nor this
L = [loop()|lists:seq(1,12)]
end.
참고 :이은에 언급 된 꼬리 재귀와는 아무 상관이 없습니다 질문의 제목. 함수 루프/0은이 예제에서 꼬리 재귀 적입니다.
고맙습니다. 이것은 의미가 있습니다. 나는 그가 이렇게하지 의미한다고 생각 : 루프() -> do_stuff() 끝 [루프() | 목록 서열 (1,12)] -> 가 M받을 끝. – antipatreal
제발, 우리에게 더 많은 문맥을주세요. 나는 내 앞에 책이 없다. 당신이 피하려고하는 것은 무엇입니까? – loxs