- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
$<
sqrt = $\ x, eps:
$<
square = $\ x: x * x,
mean = $\ x, y: 0.5 * (x + y)
:
$<
good_enough = $\ y: abs(square(y) - x) < eps
:
$<
myiter = $@ self, l, r:
mean(l, r)
if good_enough(mean(l, r))
else (self(self, mean(l, r), r)
if square(mean(l, r)) < x
else self(self, l, mean(l, r))
)
@$
:
myiter(0, max(x, 1))
>$
>$
>$
:
${
sys.stdout.write('test\n')
$>>
sys.stdout.write(str(sqrt(pycan.load('mymodule.py')(float(raw_input('vvedite chislo: '))), 0.000001)) + '\n')
}$
>$
Раз уж зашла речь о препроцессорах, откопал свое старое говно. Не помню точно, что там происходит, но если в общих чертах, то после серии replace'ов этот код превращается в вызов одной большой лямбды на питоне.
g0cTb 22.05.2016 01:18 # −62
dm_fomenok 23.05.2016 12:09 # −65