Ракетный комплекс понижающей функции

Если вы хотите его в одной строке (я не эксперт по bash, поэтому могут быть оговорки к этому, но он работает везде, где я его пробовал):

, когда test.txt содержит

${line1}
${line2}

then:

>line1=fark
>line2=fork
>value=$(eval "echo \"$(cat test.txt)\"")
>echo "$value"
line1 says fark
line2 says fork

Очевидно, что если вы просто хотите его распечатать, вы можете вынуть дополнительные value=$() и echo "$value".

2
задан 10 March 2019 в 09:28
поделиться

1 ответ

Предлагаемые операции действительно могут быть реализованы как reduce (он же foldr ):

(+ 1 (* 9 (+ 2 (* 9 (+ 3 (* 9 13))))))
=> 9739

(reduce (lambda (e acc) (+ e (* 9 acc)))
        13
        '(1 2 3))
=> 9739

Что касается констант, то 13 используется только один раз в самое внутреннее выражение, так что оно подходит для использования в качестве начального значения. 9 используется для умножения накопленного значения. Список ввода используется справа налево, когда рекурсия начинает раскручиваться, и в этот момент мы добавляем текущий элемент к накопленному результату.

0
ответ дан Óscar López 10 March 2019 в 09:28
поделиться