Пролог Аккумуляторы. Они действительно «другая» концепция?
Я изучаю Пролог в своей лаборатории искусственного интеллекта, из источникаВыучи Пролог сейчас!
В 5-й главе мы узнаем оАккумуляторы, И как пример, эти два фрагмента кода приведены.Чтобы найти длину списка
без аккумуляторов:
len([],0).
len([_|T],N) :- len(T,X), N is X+1.
с аккумуляторами:
accLen([_|T],A,L) :- Anew is A+1, accLen(T,Anew,L).
accLen([],A,A).
Я не могу понять, как эти два фрагмента концептуально отличаются? Что именно аккумулятор делает по-другому? И каковы преимущества?
Аккумуляторы звучат какпромежуточные переменные, (Поправьте меня, если я ошибаюсь.) И я уже использовал их в своих программах до сих пор, так это действительно большая концепция?