# heron.tal -rw-r--r-- 276 bytes View raw
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|0100 ( -> square root of 49 )

	#0031 sqrt

BRK

@sqrt ( v* -- v* )

	DUP2 #0002 LTH2 ?&end
	DUP2 ,&s STR2 #01 SFT2 sqrt/update
	&w ( x1* x0* )
		NIP2 sqrt/update
		SWP2k LTH2 ?&w
	POP2
	&end

JMP2r

&update ( x0* -- x1* )

	DUP2 [ LIT2 &s $2 ] OVR2 DIV2 ADD2 #01 SFT2

JMP2r