1
Name:
Anonymous
2015-03-13 0:32
Talk about Forth in this thread. ; immediate Don't POSTPONE your threads. I know there is a Forth prog rammer out there. I saw that Forth program you poasted. Please poast moar foarth. THANK YOU
3
Name:
Anonymous
2015-03-13 2:03
approximate: p 2e 10000000 1 do 4e i s>f 2e f** f* fdup 1e f- f/ f* loop ;
get
4
Name:
Anonymous
2015-03-13 4:03
>>3 In FiCL Forth, I had to write it like this:
: p 2e 1 do 4e i int>float fdup f* f* fdup 1e f- f/ f* loop ; > 10 p f. 3.060036 > 100 p f. 3.133709 > 1000 p f. 3.140806 > 2000 p f. 3.141326 > 3000 p f. 3.141350 > 10000 p f. 3.141350 > 100000 p f. 3.141350 > 200000 p f. 3.141350
I have discovered that pi = 3.141350 exactly.
5
Name:
Anonymous
2015-03-13 8:18
I require moar Foarth. Poast moar Foarth.
6
Name:
Anonymous
2015-03-13 12:46
March fourth is a day and a command.
7
Name:
Anonymous
2015-03-13 13:33
Here's a persistent implementation of Conway's Game of Life (in ANSI Forth; should run unmodified on at least GForth, among others. Requires the BLOCK wordset): VARIABLE STATEBLK VARIABLE LIFEBLK VARIABLE STATEP \ : -ROT ROT ROT ; : WRAPY DUP 0< IF DROP 15 THEN DUP 15 > IF DROP 0 THEN ; : WRAPX DUP 0< IF DROP 63 THEN DUP 63 > IF DROP 0 THEN ; : WRAP WRAPY SWAP WRAPX SWAP ; : DECEASED? WRAP 64 * + LIFEBLK @ BLOCK + C@ BL = ; : LIVING? DECEASED? 0= ; : (-1,-1) 2DUP 1- SWAP 1- SWAP LIVING? 1 AND ; : (0,-1) >R 2DUP 1- LIVING? 1 AND R> + ; : (1,-1) >R 2DUP 1- SWAP 1+ SWAP LIVING? 1 AND R> + ; : (-1,0) >R 2DUP SWAP 1- SWAP LIVING? 1 AND R> + ; : (1,0) >R 2DUP SWAP 1+ SWAP LIVING? 1 AND R> + ; : (-1,1) >R 2DUP 1+ SWAP 1- SWAP LIVING? 1 AND R> + ; : (0,1) >R 2DUP 1+ LIVING? 1 AND R> + ; : (1,1) >R 1+ SWAP 1+ SWAP LIVING? 1 AND R> + ; : NEIGHBORS (-1,-1) (0,-1) (1,-1) (-1,0) (1,0) (-1,1) (0,1) (1,1) ; : BORN? NEIGHBORS 3 = ; : SURVIVES? 2DUP LIVING? -ROT NEIGHBORS 2 = AND ; : LIVES? 2DUP BORN? -ROT SURVIVES? OR ; : NEWSTATE STATEBLK @ BLOCK UPDATE STATEP ! ; : STATE! STATEP @ C! 1 STATEP +! ; : ALIVE [CHAR] * STATE! ; : DEAD BL STATE! ; : ITERATE-CELL 2DUP SWAP LIVES? IF ALIVE ELSE DEAD THEN ; : ITERATE-ROW 0 BEGIN DUP 64 < WHILE ITERATE-CELL 1+ REPEAT DROP ; : ITERATE-BLOCK 0 BEGIN DUP 16 < WHILE ITERATE-ROW 1+ REPEAT DROP ; : GENERATION LIFEBLK @ STATEBLK @ LIFEBLK ! STATEBLK ! ; : ITERATE NEWSTATE ITERATE-BLOCK GENERATION ; : DONE? KEY [CHAR] Q = ; : PROMPT CR ." PRESS Q TO EXIT; OTHER KEY TO CONTINUE" ; : VIEW PAGE LIFEBLK @ LIST PROMPT ; : LIFE BEGIN VIEW ITERATE DONE? UNTIL ;
9
Name:
Anonymous
2015-03-14 7:11
>>7,8 I hate to get OT up in this circle-jerk, but Befunge has the greatest CGoL of
all time! v>>31 g> ::51gg:2v++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9p BXY|-+<v3*89<%+ * * + 21 >98 *7^>+\-0|<+ * * + *5 ^:+ 1pg15\,:< + * *** + 10^ <>$25*,51g1v+ + -^ p<| -*46p15:+<+ + > 31^> 151p>92*4v+ + ^_ ".", ^ vp1<+ + >v >41p >0 v+ + :5! vg-1g15-1g14<+ + +1-+>+41g1-51gg+v+ + 1p-1vg+1g15-1g14<+ + g61g>+41g51g1-g+v+ + 14*1v4+g+1g15g14<+ * * + 5>^4>1g1+51g1-g+v+ * * + ^ _^v4+gg15+1g14<+ *** + >v! >1g1+51g1+g+v+ + g8-v14/*25-*4*88<+ + 19+>g51gg" "- v + + 4*5 v< v-2:_3v+ + >^ |!-3_$ v<-+ + ^ < < <|<+ ***+ >g51gp ^ >51gp^>v+ + ^14"+"< ^g14"!"<++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++