Я начинаю, и я пытаюсь понять примитивную функцию foldl/foldr. Я прочитал documentation и попробовал кое-что. Однако, я просто не могу понять его поведение в этом случае:Понимание примитивного «foldl» в Racket
(foldl expt 2 '(1 2 3 4))
>> 262144
Я думаю, что результат должен быть таким же, как:
(expt (expt (expt (expt 2 1) 2) 3) 4)
>> 16777216
Я не могу проследить foldl, так как функция является примитивным. Я не вижу, как процедура достигает этого результата. Я использую Racket и Dr. Racket.
Это сообщение также может быть полезно: http://stackoverflow.com/questions/39018163/expanded-form-of-fold-in-racket – rnso