00:00:00 --- log: started forth/02.11.25 00:17:21 looks like he lost it 00:48:56 --- quit: ianni (Read error: 110 (Connection timed out)) 00:52:45 --- quit: skylan (Read error: 60 (Operation timed out)) 00:54:22 --- join: skylan (sjh@207.164.213.86) joined #forth 00:57:07 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 00:57:36 --- quit: Serg_Penguin (Client Quit) 01:19:08 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 01:43:29 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 01:44:14 --- quit: Serg_Penguin (Client Quit) 01:48:16 eugh 01:48:17 so hot 01:48:21 38C today 01:52:27 ouch 02:41:05 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 02:42:38 you got it back? 02:43:35 hi 02:43:41 what 'it' ? 02:44:23 your link 02:44:50 did the hub work ok? 02:45:12 hub was ok butt wires were dead 02:49:36 --- quit: Soap` (Read error: 60 (Operation timed out)) 03:08:54 --- quit: skylan (forward.freenode.net irc.freenode.net) 03:08:54 --- quit: Fractal (forward.freenode.net irc.freenode.net) 03:08:54 --- quit: Robert (forward.freenode.net irc.freenode.net) 03:08:54 --- quit: Serg_Penguin (forward.freenode.net irc.freenode.net) 03:08:54 --- quit: lament (forward.freenode.net irc.freenode.net) 03:08:54 --- quit: OrngeTide (forward.freenode.net irc.freenode.net) 03:08:54 --- quit: TreyB (forward.freenode.net irc.freenode.net) 03:08:54 --- quit: ChanServ (forward.freenode.net irc.freenode.net) 03:08:54 --- quit: onetom__ (forward.freenode.net irc.freenode.net) 03:08:55 --- quit: fridge (forward.freenode.net irc.freenode.net) 03:08:55 --- quit: proteusguy (forward.freenode.net irc.freenode.net) 03:08:55 --- quit: XeF4 (forward.freenode.net irc.freenode.net) 03:10:31 --- join: ChanServ (ChanServ@services.) joined #forth 03:10:31 --- join: OrngeTide (orange@65.19.141.250) joined #forth 03:10:31 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 03:10:31 --- join: XeF4 (xef4@lowfidelity.org) joined #forth 03:10:31 --- join: Fractal (cduer@h24-77-171-228.ok.shawcable.net) joined #forth 03:10:31 --- join: fridge (~fridge@dsl-203-33-161-178.NSW.netspace.net.au) joined #forth 03:10:31 --- join: Robert (~Robert@robost86.tsps1.freenet6.net) joined #forth 03:10:31 --- join: onetom__ (~tom@novtan.bio.u-szeged.hu) joined #forth 03:10:31 --- join: proteusguy (~username@65.191.88.177) joined #forth 03:10:31 --- join: skylan (sjh@207.164.213.86) joined #forth 03:10:31 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 03:10:31 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 03:10:31 --- mode: forward.freenode.net set +o ChanServ 03:14:57 --- quit: fridge ("Time wasted on IRC: 2 days 14 hours 53 minutes 3 seconds") 03:35:40 * lament crashes palmos for the thousandth time 03:35:42 fun! 03:45:27 u probably have broken app or hardw, Palm OS is quite stable 03:46:36 Serg_Penguin: Yes, a broken app. ppforth :) 03:47:25 fu..get it :) or use emulator 4r dev, it has kbd :) 03:48:45 fu? 03:50:26 fuck+forget :) 03:58:10 what about bare iron forth on palm, yeah? 04:04:58 well, that's impossible on my palm 04:05:09 since the os is in the ROM 04:08:11 u have no-flash palm ? there were u'r eyes when u was buying it ? 04:08:31 I'm fine with palmos 04:08:40 in any case, ppforth is quite close to bare metal 04:08:48 since it's able to crash palmos :) 04:09:31 i hacked my OS, tossing out many crap and jack-flashed many usef00l apps like iSilo and chess 04:09:44 so i have only data in ram 04:40:11 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 04:40:15 --- join: proteus_ (~username@65.191.88.177) joined #forth 05:12:01 Hm, I'm beginning to understand Forth, I think. Apparently, writing your own Forth is necessary for that. 05:13:27 Good :) 05:13:40 I'm leaving for school, Serg_Penguin will help you with any questions you migh have ;) 05:21:51 how long ar eu in forth ? 05:22:32 Me? Not sure, I don't even know if i'm really "in" 05:22:45 so what did u make in it ? 05:23:03 what text read and used ? 05:24:35 I didn't make anything. 05:24:55 And I read the stuff online, such as the gforth tutorial. 05:25:05 Most of internet forth stuff sucks :( 05:25:22 but this article is awesome: http://www.figuk.plus.com/byof.htm 05:25:24 look at topic link UT 05:25:46 read Leo Broudie 'starting forth' and 'using forth' 05:25:53 they roxx 05:25:58 i don't like to buy books :) 05:26:10 sos suck 'em out of wire 05:26:18 and read on palm 05:26:40 I haven't found them anywhere. 05:32:24 try better 05:32:54 heh 05:33:12 The warez people aren't especially interested in Forth, it seems :) 05:45:01 --- quit: proteus_ (Read error: 104 (Connection reset by peer)) 05:45:07 --- join: yeahright (~username@65.191.88.177) joined #forth 06:34:43 --- join: ianni (ian@inpuj.net) joined #forth 06:37:56 Hi ianni. 06:42:14 re hi 06:42:50 * Serg_Penguin will run to his sweetheart at 1800 MSK 06:42:55 18:00 06:44:55 -> Robert i started my puzz/rpg but too many QQQ arize... 06:48:27 QQQ? 06:48:57 Do you have a computer at home, too? 06:49:36 questions 06:49:42 yes, but no link 06:50:34 i440r is WANTED 06:50:40 i'll bite him.... 06:50:42 Hehe :P 06:50:48 You're using IsForth? 06:51:04 trying, damn 06:51:11 to port my soko to it 06:51:53 but his err msg is useless, and i failed to write my own quick - it doez weird thingz 06:53:19 Heh. 06:53:26 What's wrong+ 06:53:27 ? 06:53:48 by default it shows just barfed word 06:53:57 i want it to show err string 06:54:10 it did it from console 06:54:32 but from file it typez large piece of src if i use #tib 06:54:45 or lots of spacez if i use span 06:54:53 Ah, right.. 06:55:06 IsForth just writes a "?" if you use a tab in your file 06:55:07 page is better than nothing but i want _string_ 06:55:08 THAT is annoying. 06:56:01 : err tib #tib @ cr type cr >in @ spaces ." ?" (abort) ; 06:56:07 ' err is abort 06:56:17 this misbehaves 07:00:39 BYE 07:00:42 --- quit: Serg_Penguin () 07:21:55 --- quit: yeahright (Read error: 104 (Connection reset by peer)) 08:35:04 --- quit: lament ("mental mantle") 09:50:34 --- quit: skylan (Read error: 104 (Connection reset by peer)) 10:01:04 --- join: skylan (sjh@207.164.213.56) joined #forth 11:21:55 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 12:16:24 --- join: gilbertbsd (~gilbertbs@67.97.122.14) joined #forth 12:17:00 hello 12:22:31 --- quit: lament ("mental mantle") 12:34:23 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 12:34:33 --- join: gilberbsd (~gilberbsd@67.97.122.14) joined #forth 12:34:43 hi lament. 12:35:17 hi. 12:35:35 do you happen to know how to print ascii text files with boxes in windows? 12:44:33 No. 12:45:29 Do you happen to know how get colorforth to work without ms-dos? 12:46:35 aren't there instructions for that on the colorforth site? 12:47:38 lament you need to have a floppy drive thing. 12:47:47 isn't it meant for floppy install anyway? 12:48:20 if I remember, you can just strip off the COM loader and copy it to disk 12:48:24 Xef4 do you happen to have an answer to my 1st question to lament? 12:48:55 use a dos box? 12:48:57 or a cmd box 12:49:04 I want to print the file. 12:49:13 its the fasm docs ... and I am in w2k. 12:49:41 don't know 12:49:46 okay. 12:49:52 unless just outputting it straight to lpt1 works 12:49:59 er, w2k 12:50:01 then I don't know 12:52:41 --- quit: gilbertbsd (Read error: 110 (Connection timed out)) 12:55:39 --- nick: gilberbsd -> gilbertbsd 12:56:23 hey, I found instructions on the colorforth.com site 12:56:27 DOS can write a bootable floppy with DEBUG. In a DOS window type: 12:56:27 debug COLOR.COM 12:56:27 w100 0 0 7e 12:57:39 so it looks like you just copy the com file to the floppy and reboot 12:57:49 er, raw copy it starting at sector 0 13:01:59 XeF4: except that requires DOS, which i don't have 13:02:44 linux will do it happily, surely there is a win2k util for that 13:02:53 do what happily? 13:03:03 linux doesn't have a 'debug' command :) 13:03:31 simply copying color.com directly to a floppy doesn't work 13:03:54 lament whadya mean you don't have dos? 13:03:56 * lament wonders why CM didn't just provide a boot image 13:03:58 what OS are you using? 13:04:02 gilbertbsd: linux 13:04:38 are there no 'dd' instructions for colorforth? 13:04:48 Hey! do you have ascii2pdf ? 13:05:03 lament: LISTEN! the com file is the boot image 13:05:25 interesting, then why does that not work?... 13:06:08 have you tried it? 13:06:13 --- part: gilbertbsd left #forth 13:06:16 yes 13:06:29 perhaps it is not compatible with your machine. does your display go blank? 13:06:31 Since it clearly refuses to run on my actual computer, I'm trying to run it in bochs. 13:06:37 --- join: gilbertbsd (~gilberbsd@67.97.122.14) joined #forth 13:06:46 Yes, the display goes blank 13:06:56 then it probably doesn't like your video card 13:07:03 yes, it probably doesn't 13:07:23 it is picky about that. CM has an ATI card and I have only seen it work on one machine with an ATI card 13:07:49 yay for non-portable software 13:08:35 has anyone other than CM actually managed to run it? :) 13:09:28 I have. 13:09:57 lucky. 13:10:04 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 13:10:05 I have on a machine with almost the same hardware as CM's 13:10:08 --- quit: onetom__ (Remote closed the connection) 13:10:09 I dunno, I couldn't get a helloworld out of it. 13:10:32 heh 13:11:13 have you tried this page? http://www.users.qwest.net/~loveall/c4index.htm 13:13:37 --- quit: ChanServ (Shutting Down) 13:13:45 chanserv has quit? 13:13:50 yeGODS! 13:13:57 yay 13:13:59 its the end of the world as we knew it to be. 13:23:31 --- join: ChanServ (ChanServ@services.) joined #forth 13:23:31 --- mode: forward.freenode.net set +o ChanServ 13:23:31 --- mode: ChanServ set +l 83 13:24:15 why the strange limit? 13:28:04 strange limit? 13:28:07 83 13:28:20 context per favor? 13:30:09 --- quit: lament (Remote closed the connection) 13:34:53 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 13:35:25 lament : The 83 is in reference to "Forth 83" - An attempt at standardizing forth that improved upon Forth 79. 13:36:03 oh. 13:40:25 Fractal: can you give advice on implementing tail-recursion? 13:40:52 Possibly, depending on the forth implementation. 13:40:59 Er, you do mean in forth, right? 13:41:42 OK, do you understand how words are "called" in forth? 13:42:21 Yes. 13:42:23 (I think) 13:42:28 Essentially, it pops your current Instruction Pointer onto the return stack, and then sets it to the word's address. 13:42:36 Heh. 13:43:04 OK, essentially, you want to change the IP to the beginning of the word's code, and *not* push it onto the return stack. 13:43:16 yes. 13:43:29 OK, this'll probably vary pre implementation. 13:43:40 But often, you can implement some sort of branch. 13:43:47 Check how "if" is defined. 13:43:49 hm, so i could get the address of the word by taking it off rsp 13:44:20 Well, you might want to use ' 13:44:44 ' what ? 13:45:03 [ ' word branch ] 13:45:05 Or something. 13:45:13 word is not yet defined, afaik 13:45:26 Basically what ' does is looks up the following word, and presses it's addr onto the stack. 13:45:32 Tick isn't defined? Really? 13:45:56 OK, does your forth have "recurse"? 13:45:57 tick is defined 13:46:03 yes 13:46:12 Oh, branch isn't... Well that's highly implementation dependant. 13:46:20 Can you "see recurse"? 13:46:26 aha oh i see. 13:46:29 Or look up it's definition elsewhere? 13:46:31 'last' 13:46:50 : recurse last @ name> , ; 13:47:09 It's probably also immediate, right? 13:47:46 how can i check that? 13:48:06 OK, basically how that works is that it takes the last entry in the dictionary (the one you're currently defining), and compiles it to here. 13:48:27 Well, it should in the source code say : recurse last @ name> , ; immediate 13:48:47 But that's not really that important. It almost certainly is immediate. 13:49:40 So you'll want to do something like : tail-recurse last @ name> branch ; immediate 13:49:48 Of course, you'l have to find out what branch is in your forth. 13:49:54 Can you "see if" 13:50:12 ? 13:50:28 :if compile ?branch here dolit 0 , ; 13:53:17 OK, ?branch but no branch? Odd, but OK... 13:53:21 Let's see here. 13:54:00 OK, I know. Can you "see again"? 13:55:13 again should just be a plain branch. 13:55:25 branch is there by the way 13:55:36 Oh, ok... 13:55:46 What is "see again"? 13:56:15 : compile branch , ; 13:56:52 OK, cool. Try this : tail-recurse last @ name> compile branch , ; immediate 13:57:11 Er, wait. 13:57:15 Ditch the name> 13:57:31 : tail-recurse last @ compile branch , ; immediate 13:58:04 Chuck calls tail-recurse ";recurse", if you're interested. 14:00:21 Which describes what's happening quite well: It's not a call to a word, but the end of the execution of the current word. 14:00:29 And a branch to the beginning. 14:00:45 chuck is mad, though 14:00:56 Heh. That may be. 14:00:58 what with him using stuff like if ... ; then ... ; 14:01:36 Well, in fact, it's perfectly valid forth code... Essentially, it's a goto. :) 14:02:20 I don't use it myself, but I don't really have anything against it if it's used properly. 14:03:02 But of course, you'll have to remember to get back into compile mode after the ; if ... ; ] then ... ; 14:03:37 no, not in chuck's recent inventions 14:04:24 Oh really? Odd... 14:04:33 alas, your definition crashes palmos :) 14:05:31 Hm... Maybe I'm not understanding name> Did you try leaving it in? 14:05:45 Er, actually, that's name-to 14:05:49 It would make sense. 14:07:42 Still crashes. 14:08:03 And you've made it immediate, of course? 14:08:08 yes. 14:08:21 Does it crash in compilation or execution? 14:08:27 execution. 14:10:09 Hm. That's quite odd. 14:10:39 Maybe my testing routine is bad? : foo if 0 tail then 42 . ; 14:10:55 to be ran with "1 foo" 14:11:19 Hm... Looks good. 14:15:04 What does it say when you "see foo"? 14:16:20 hmmm 14:16:39 Does it give you branch addresses? 14:16:58 : ?branch [some weird shit] dolit 0 branch foo dolit 42 . ; 14:17:23 oh um weird shit is actually the memory address of dolit from 'dolit 42' 14:17:40 which makes sense 14:19:33 That's odd that it shows "branch foo" instead of the memory addr. 14:20:26 perhaps because of name> ? 14:20:38 That's _with_ name> 14:20:55 Maybe... 14:21:08 I can try without name>, although that crashes too 14:21:21 OK, it'd be interesting to see waht "see" says... 14:21:28 What forth are you using, BTW? 14:21:39 It's not quartus, is it? 14:21:59 ppforth. 14:22:08 Ok here's how it looks like without name> 14:22:09 Darn. I've got quartus on mine. 14:23:07 ?branch [address of dolit 42] dolit 0 branch [address of foo - 6] dolit 42 . ; 14:23:31 that -6 bothers me. 14:23:58 Yes, me too. 14:24:36 Is quartus good? 14:24:53 Well, I don't really use it much, I just wanted a forth on my palm, and that was the only one I found. 14:25:00 Of course, this was probably 2 years ago. 14:25:23 ppforth is probably better - It's free right? 14:25:36 yes 14:25:40 hm, i think i know why -6 14:25:52 Why? 14:26:01 Did you "see name>"? 14:26:22 oh, wait, i don't. 14:26:35 Hm... 14:26:57 : name> dup o@ 31 and 2 + + align-adr ; 14:27:01 (dolits omitted) 14:27:28 * lament doesn't get it. 14:27:32 Ah, yes, I guess the dragonball needs alignment... 14:27:43 That's one of the only nice things about intels. 14:28:18 OK, I think I sort of understand that 14:28:43 Essentially, if you have an address pointing to the beginning of the word's header, it will put you to the beginning of the code. 14:29:01 Now, notice than 31 is the maximum number of characters in an ANS forth word. 14:29:11 So, the bitwise and is to get the length of the word. 14:29:31 Then, this number is added to the address (plus 2). 14:29:58 And then, since alignment is necessary, the address is aligned. 14:30:26 I don't know exactly what o@ does... 14:30:34 But I'm sure it's pretty close to @ 14:31:27 err, it's not o@ 14:31:28 it's a@ 14:31:47 OK, fetch an address, probably. 14:32:25 hrm 14:33:09 And I assume there's a corresponding >name 14:33:47 So, we need to figure out what "last" returns. 14:34:18 Er, last @ 14:34:26 last @ returns the address of foo. 14:34:32 we know that 14:34:33 Is it an addr to the code or an addr to the name header? 14:35:05 what do you mean by name header? 14:35:43 I think it *is* to the name header, because of what recurse does. 14:35:59 Well, in forth, the words are stored in an append-only heap. 14:36:09 The dictionary is essentially a linked-list back through the heap. 14:36:38 The name header contains the name, wether or not the word is immediate/compile/only/etc, and maybe a few other things. 14:37:15 compile-only that is. 14:37:40 last @ returns the address of the code. 14:38:43 Maybe try : tail-recurse last @ name> compile branch compile , ; 14:38:55 Oh really? 14:39:00 Wait, don't try that. 14:40:17 Yes, I can't really see anything wrong with : tail-recruse last @ name> compile branch , ; 14:40:35 OK, recurse was : last @ name> , ; immediate right? 14:40:57 yes 14:41:53 Well, I assume that last @ returns code then. 14:41:58 Not the header. 14:42:04 yes, i checked. 14:42:18 Oh, ok you said that. 14:42:19 Cool. 14:42:26 I still don't understand what name> does 14:43:06 Er, wait, I'm an idiot. It returns the name header. 14:43:11 OK, think of name> like this: 14:43:36 If you've got an address of the name, you use name> ( name-addr -- code-addr ) 14:43:46 To get the addr. 14:44:12 So last @ definitley returns the name header addr. 14:44:32 Oh, another thing the name header stores is an addr to the previous definition's name header, BTW. 14:45:29 hmm, yes, i was wrong 14:45:38 : tail-recurse last @ name> compile branch , ; immediate 14:45:45 That's my best guess. 14:45:47 Sorry. 14:46:13 I'm sure if you ask later, some of the forth guru's will have some ppforth experience. 14:46:52 Does it say why it crashes? Is it a bad exec addr or stack underflow? 14:47:02 it doesn't. 14:47:13 Does it normally say on a stack underflow? 14:47:59 yes. 14:48:27 hmm wtf 14:48:46 : tail last @ name> compile branch , ; immediate 14:48:52 : foo if 0 tail then 42 . ; 14:48:58 see foo gives this: 14:49:13 ?branch foo dolit 0 branch foo dolit 42 . ; 14:50:33 That's really strange. Your "see" implementation is really strange. 14:51:34 ah, nevermind 14:51:43 it's just broken. 14:51:52 the first foo is really the right address 14:52:07 i have redefined foo and it had remembered the first definition's address 14:52:16 Oh... 14:52:24 That figures... 14:52:26 Heh. 14:52:46 That's a good argument against late name linking. 14:52:53 hmmm 14:53:04 So, have you tried on a completely new word? 14:53:09 maybe i shouldn't branch to foo (i.e. foo's XT) 14:53:21 but to foo + one cell ? 14:53:47 Well, you want to branch to the beginning of the code, similarly as to how recurse does it. 14:53:57 but recurse actually calls the XT 14:54:04 Yes, exactly. 14:54:08 I don't need to 14:54:10 You just want to branch there. 14:54:35 but i don't want to branch to the XT itself, do I? 14:54:46 What do you mean by XT? 14:54:58 'dolist' 14:55:52 I still don't know what you mean. 14:56:26 The part of foo code which is not a forth word 14:57:12 OK, you mean the branch address. 14:57:23 no 14:57:33 OK, the literal marker? 14:57:33 i mean the execution token. 14:57:55 YESSS!!!!! 14:58:17 : tail last @ name> 8 + compile branch , ; immediate 14:58:18 OK. 14:58:19 did it 14:58:32 That works? OK. 14:58:39 it makes sense, too. 14:59:28 Anyway 14:59:37 do you mean you don't know what execution tokens are? 14:59:43 That can't be, since you've written a forth. 15:01:21 Well, I don't call them "execution tokens" 15:01:35 Is your forth threaded? 15:01:56 It's directly threaded. 15:02:12 In frugal there is exactly 4 tokens. 15:02:37 PRIMITIVE NUMBER BRANCH IF_BRANCH 15:03:19 branch, a token? 15:03:42 Well, no, they aren't exactly tokens. 15:04:02 If a BRANCH is encountered, it puts the following cell into the IP 15:04:59 If PRIMITIVE is encountered, it actually executes the machine code pointed to by the following cell, then sets the IP to the cell after that. 15:05:43 And if it's not on of those 4, it treats it as an address of a forth word. 15:05:53 Read docs/INTERNALS for the exact details. 15:06:47 There is no need for a CFA. 15:06:55 : countdown ?dup if dup . 1- tail then ; ok 15:07:01 CFA? 15:07:41 Code Field Address. 15:08:05 So your tail recursion is working now? 15:08:10 Yes. 15:08:35 Well, good. 15:08:36 I still don't understand exactly how it works, but i understand some things at least :) 15:09:03 Heh. Well I don't understand exactly either. :) 15:09:15 Once my hotsync cradle is working again, I'll have to try out ppforth. 15:11:55 Now I can pretend i'm CM and don't bother getting familiar with the other loop structures. 15:12:17 Heh. 15:13:08 Well, I'm fairly partial to do .. loop 15:15:59 oh, you're simply not factoring your code well enough :P 15:17:19 Heh. 15:23:39 CM says "This (DO LOOP) has two loop control parameters and it is just too complicated." 15:24:02 why not just use midgets to repeat instructions huh? 15:24:16 midget do the above until you pass out :D 15:25:47 lament : Well, do .. loop is somewhat complex, but extremely useful. 15:26:03 there has to be a primary loop. 15:26:05 : count 10 0 do i . loop ; 15:26:17 eg python has 2 loops: while and for. 15:26:23 gilbertbsd : No, not exactly. 15:26:23 and you can do away with the for. 15:26:37 Any looping construct can be expressed recursively. 15:27:01 so if else. 15:27:10 any loop has an implicit conditional :D 15:27:37 Well, you don't particularly need it to be expressed in if else then, either. 15:28:08 * gilbertbsd draws a flowchart and points to the <> part :P 15:28:26 python is nice, because while and for are both very different (much more different than C while and for) 15:28:55 and you don't have any unnecessary duplication of control structures (although sometimes i do mess do..while) 15:28:58 but it is easy to emulate for under while than the otherway around. 15:29:00 err, miss 15:30:04 Well, one problem with C is it's lack of anonymous code. Try defining for() as a C function. 15:30:57 Also related, is that user defined functions are second-class-citizens. 15:31:32 I don't know about python. 15:31:52 Python doesn't have any such silly problems :) 15:32:07 Python for is an iterator, like bash for 15:32:30 i.e. 'for foo in list' 15:33:06 OK, cool. 15:33:17 So you pass foo as a lambda expression? 15:33:40 Or just as a curried function? 15:33:55 um, no 15:33:56 So for (2 +) in list 15:33:57 ? 15:33:58 the full syntax is 15:34:07 for foo in list: code 15:34:35 What's foo? 15:34:40 a variable. 15:34:50 the loop counter. 15:35:16 for x in [1,2,3]: print x 15:35:33 Oh, I see. 15:36:03 And is x local to the for? 15:36:11 no. 15:36:21 Ok, I see now. 15:40:12 of course, since everything is an object, you can be as wicked as you like; for example, with functions foo and bar: 15:40:18 for x in [foo, bar]: x() 15:41:15 Ah yes, as any well designed language should. 15:41:16 fractal do you know lisp? 15:41:28 gilbertbsd : Enough to get by, but I'm not a huge fan. 15:42:37 gilbertbsd : Are you? 15:43:13 http://www.norvig.com/python-lisp.html 15:43:17 I am a lisp fan. 15:43:39 some how though my favorite languages are python and asm. 15:43:56 I will only fully understand forth and lisp IF i implement it by myself I think. 15:44:35 Well, hopefully you should somewhat understand it before you implement it. Forth really is trivial to implement, though. 15:44:46 indeed. 15:44:49 for a non-newbie. 15:48:13 hm, lisp is rather easier to understand than forth 15:49:15 sure thing. 15:49:22 Well, I think they're comparable. The thing about lisp is that the various dialects are relatively well defined, where all forths are different. 15:49:23 lisp, not common lisp though. 15:50:09 in lisp at least you have a clear separation of stuff into macros, primitives and library functions 15:50:24 btw are macros in lisp the same as macros in asm? 15:50:40 in forth it's almost impossible to understand what's primitive and what's not 15:50:46 gilbertbsd: well, quite a lot smarter 15:51:59 how so? 15:54:19 well, they have to fit into the syntax somehow 15:54:21 actually, i don't know. 15:54:23 :) 15:56:21 Well, I believe in lisp, a macro is similar to a function that takes functions and returns functions. 15:56:39 --- quit: TreyB (Read error: 60 (Operation timed out)) 15:56:44 So, you can have a lot more flexibility than the simple string substitutions of ASM/C's macros. 15:58:53 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 15:58:57 I don't understand them intimatley, though. I'm sure you could get better responses in #lisp. 15:59:03 ha. 15:59:05 #lisp. 15:59:07 right. 15:59:45 ... I don't get it. 15:59:50 What's wrong with #lisp? 16:00:35 nothing. 16:00:55 Um, ok. 16:01:22 as a matter of fact it was the #lisp guys who told me to learn forth. 16:01:41 Yes, well philisophically, the languages are similar. 16:01:59 also mccarthy taught cm 16:02:13 Is that right? I didn't know that. 16:02:25 yep. sez cm hisself :D 16:02:34 CM's said that lisp inspired him quite a bit in forth design. 16:03:10 but whereas lisp is definitely academic, forth is not so. 16:03:11 Unfortunatley, he didn't seem to like namespaces or typing, but that's what makes forth forth, I guess. :) 16:06:33 CM proposes a peculiar solution to the namespace problem 16:06:50 CM needs to gather the patience to write a book. 16:06:52 load only those names that needed :) 16:07:15 i wonder if he talks much to RMS: they sound alike. 16:07:21 --- join: onetom_ (~tom@novtan.bio.u-szeged.hu) joined #forth 16:07:40 Well, I think we were talking a bit about this earlier. I don't believe RMS and CM are alike at all. 16:08:05 hmmm they are both evangelists for different churches. 16:08:07 RMS has very concrete ideals and opinions - little will change that, where CM's ideas are constantly changing as to his whims at the moment. 16:08:45 CM I believe might be the only person whose version n+1 of software might be smaller than version n. 16:09:23 well, probably not the only. 16:09:26 Well, he certainly says that often, but how much serious CM code have you actually read? 16:09:39 moi? rien. :D 16:09:44 I know I have never seen any nontrivial code of his. 16:10:18 --- quit: onetom (Read error: 60 (Operation timed out)) 16:11:05 For writing actual software, python is probably the best 16:11:09 But forth is fun. 16:12:18 mmmmm python. 16:12:35 Heh. 16:12:43 so if you don't have actual software, what do you have? 16:14:06 fun 16:20:32 fun is good. 16:20:34 always. 16:30:14 --- quit: lament (Remote closed the connection) 16:48:35 --- quit: gilbertbsd (Read error: 110 (Connection timed out)) 17:03:16 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 17:03:17 --- quit: onetom_ (Read error: 104 (Connection reset by peer)) 17:36:02 --- quit: skylan (Connection reset by peer) 18:06:42 --- quit: onetom (Read error: 104 (Connection reset by peer)) 18:07:36 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 18:22:48 --- join: fridge (meldrum@zipperii.zip.com.au) joined #forth 18:37:06 --- join: onetom_ (~tom@novtan.bio.u-szeged.hu) joined #forth 18:37:08 --- quit: onetom (Read error: 104 (Connection reset by peer)) 19:05:02 --- join: skylan (sjh@Riverview68.tbaytel.net) joined #forth 19:27:17 --- join: Soap` (flop@202-0-42-22.cable.paradise.net.nz) joined #forth 21:58:31 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 21:59:52 hi Fractal 22:00:03 and anyone if alive 22:00:27 Hey serg. 22:00:45 whadda u work on now ? 22:00:55 i got distracted in many directions 22:01:10 1) puzzle/rpg in same forth as soko 22:01:33 2) text filter to optimally fill palm pilot screen 22:02:02 3) port of soko to isForth ( and crash-test of it ) 22:02:30 seems like all, if not mention oldly dropped projects 22:06:27 Heh. Cool. I'm just bombing around, reading slashdot, etc. 22:08:05 * Serg_Penguin dunno surf w/o purpose 22:09:23 --- quit: ChanServ (forward.freenode.net irc.freenode.net) 22:09:23 --- quit: Robert (forward.freenode.net irc.freenode.net) 22:09:23 --- quit: TreyB (forward.freenode.net irc.freenode.net) 22:09:23 --- quit: OrngeTide (forward.freenode.net irc.freenode.net) 22:09:23 --- quit: Soap` (forward.freenode.net irc.freenode.net) 22:09:23 --- quit: onetom_ (forward.freenode.net irc.freenode.net) 22:09:23 --- quit: skylan (forward.freenode.net irc.freenode.net) 22:09:23 --- quit: XeF4 (forward.freenode.net irc.freenode.net) 22:10:43 --- join: ChanServ (ChanServ@services.) joined #forth 22:10:43 --- join: Soap` (flop@202-0-42-22.cable.paradise.net.nz) joined #forth 22:10:43 --- join: skylan (sjh@Riverview68.tbaytel.net) joined #forth 22:10:43 --- join: onetom_ (~tom@novtan.bio.u-szeged.hu) joined #forth 22:10:43 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 22:10:43 --- join: Robert (~Robert@robost86.tsps1.freenet6.net) joined #forth 22:10:43 --- join: XeF4 (xef4@lowfidelity.org) joined #forth 22:10:43 --- join: OrngeTide (orange@65.19.141.250) joined #forth 22:10:43 --- mode: forward.freenode.net set +o ChanServ 22:11:40 damn splits... 23:01:02 --- quit: fridge ("http://lice.codehack.com") 23:19:38 --- quit: Serg_Penguin (Read error: 110 (Connection timed out)) 23:26:18 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 23:31:11 --- join: proteusguy (~proteusgu@65.191.88.177) joined #forth 23:57:11 z 23:57:48 --- quit: onetom_ (Read error: 104 (Connection reset by peer)) 23:59:59 --- log: ended forth/02.11.25