00:00:00 --- log: started forth/07.11.03 00:13:18 --- quit: Quartus (Remote closed the connection) 00:13:31 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 00:13:31 --- mode: ChanServ set +o Quartus 00:29:01 --- quit: arcus ("Ex-Chat") 00:29:34 --- join: ygrek (i=user@gateway/tor/x-8cf608093a545cf8) joined #forth 00:52:04 --- join: migawaskio (n=Administ@cpe-76-167-152-135.socal.res.rr.com) joined #forth 00:56:11 everyone sleeping? 01:04:58 --- join: roxirc (n=Administ@cpe-76-167-152-135.socal.res.rr.com) joined #forth 01:04:59 --- quit: migawaskio (Read error: 104 (Connection reset by peer)) 01:26:49 --- nick: roxirc -> mokimutyio 01:32:36 --- quit: mokimutyio (Remote closed the connection) 01:38:11 http://www.forth.com/starting-forth/ 02:04:40 --- join: H4n1 (n=Hans@p57BBD103.dip0.t-ipconnect.de) joined #forth 02:05:26 --- join: TreyB_ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 02:08:23 --- quit: TreyB (Read error: 110 (Connection timed out)) 02:38:22 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 02:38:22 --- quit: TreyB_ (Read error: 104 (Connection reset by peer)) 02:44:25 I'll have to flatter PoppaVic about this sort of thing some day: #Forth, which could erstwhile always be counted on for a good thrashing of Chuck Moore's work and character, now devotes itself to PoppaVic! A glorious line of targets for low-grade, obsessive contempt. 03:41:51 --- join: arke (n=arke@p54A7E5B8.dip.t-dialin.net) joined #forth 03:41:51 --- mode: ChanServ set +o arke 03:42:30 --- join: TreyB_ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 03:57:12 --- quit: arke (" HydraIRC -> http://www.hydrairc.com <-") 03:58:18 --- quit: TreyB (Read error: 110 (Connection timed out)) 04:03:12 --- quit: Off_Namuh81 (Remote closed the connection) 04:17:34 --- join: Off_Namuh81 (i=GPS@gateway/tor/x-70e081bc2fb9b299) joined #forth 04:54:41 --- join: doublec (n=doublec@203-97-173-6.cable.telstraclear.net) joined #forth 05:47:07 --- quit: Quartus (Read error: 110 (Connection timed out)) 05:47:18 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 05:47:18 --- mode: ChanServ set +o Quartus 05:47:28 --- join: BirdReynolds (n=mhx@f233009.upc-f.chello.nl) joined #forth 05:49:18 --- quit: BirdReynolds (Client Quit) 05:51:04 --- quit: H4n1 (Read error: 110 (Connection timed out)) 06:01:37 --- part: doublec left #forth 06:48:00 --- join: gnomon (n=gnomon@CPE0050eb372bdb-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 07:12:26 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 07:12:26 --- mode: ChanServ set +o tathi 07:24:00 --- quit: Quartus (Read error: 110 (Connection timed out)) 07:24:08 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 07:24:08 --- mode: ChanServ set +o Quartus 07:55:25 --- quit: tathi ("leaving") 07:56:18 --- join: nighty^ (n=nighty@sushi.rural-networks.com) joined #forth 08:24:18 --- join: nighty__ (n=nighty@sushi.rural-networks.com) joined #forth 08:41:28 --- quit: nighty^ (Read error: 113 (No route to host)) 08:45:51 --- quit: jns ("leaving") 08:46:11 --- join: jns (n=jens@p57B06336.dip.t-dialin.net) joined #forth 09:17:34 --- quit: Baughn (Read error: 104 (Connection reset by peer)) 09:20:58 damn, I hate it when my q key sticks 09:23:53 --- join: nighty^ (n=nighty@sushi.rural-networks.com) joined #forth 09:28:20 qqqqqqqqqqqqqq 09:28:33 --- join: saon_ (n=saon@207.138.42.211) joined #forth 09:28:49 --- quit: saon_ (Client Quit) 09:32:14 --- join: forther (n=forther@c-67-180-150-67.hsd1.ca.comcast.net) joined #forth 09:36:35 --- quit: nighty__ (Read error: 113 (No route to host)) 10:10:34 --- quit: forther ("Leaving") 10:25:03 --- quit: Quartus (Read error: 110 (Connection timed out)) 10:25:11 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 10:25:11 --- mode: ChanServ set +o Quartus 10:25:50 --- join: nighty__ (n=nighty@sushi.rural-networks.com) joined #forth 10:30:44 --- join: H4ns (n=Hans@p57A0F26C.dip.t-dialin.net) joined #forth 10:32:27 --- join: timlarson__ (n=timlarso@66.213.50.2) joined #forth 10:33:22 --- quit: timlarson (Read error: 110 (Connection timed out)) 10:36:38 --- nick: timlarson__ -> timlarson 10:36:57 --- quit: nighty^ (No route to host) 11:14:41 --- join: ecraven (i=nex@eutyche.swe.uni-linz.ac.at) joined #forth 11:25:33 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 11:27:31 --- join: nighty^ (n=nighty@sushi.rural-networks.com) joined #forth 11:33:15 --- quit: nighty^ (Client Quit) 11:35:14 --- quit: Quartus__ (Read error: 104 (Connection reset by peer)) 11:41:25 --- join: geartooth (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 11:43:13 --- quit: nighty__ (Read error: 113 (No route to host)) 11:48:50 --- quit: wossname (Read error: 110 (Connection timed out)) 12:13:43 --- join: nighty^ (n=nighty@sushi.rural-networks.com) joined #forth 12:23:38 --- join: Deformati (n=joe@c-68-61-240-49.hsd1.mi.comcast.net) joined #forth 12:24:29 Are there any good books? 12:25:22 --- quit: Quartus (Read error: 110 (Connection timed out)) 12:25:27 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 12:25:27 --- mode: ChanServ set +o Quartus 12:32:34 http://www.forth.com/starting-forth/ 12:34:32 Should I wget -r that or what? 12:34:38 I want just the book. 12:35:16 IS starting forth the best book, or are the paper books better? 12:37:36 For an absolute beginner, Starting Forth is the best. 12:37:51 There are no paper books on Forth other than Forth Programmer's Handbook. 12:38:15 Few publishers have expressed any interest in the language as Java, C, and so many others have risen to popularity. 12:39:20 Well, SICP is a pretty good book. 12:39:22 For scheme. 12:41:22 I am looking for fun new concepts, I hear that scheme, forth, ML, Oz are a few where I can learn new paradigms and stuff. 12:49:18 * kc5tja nods 12:49:52 SICP is good because it teaches the core concepts behind computer programming; it just happens to use Scheme to do it, thus making it a good book for Scheme too. 12:49:52 Any more you might suggest? 12:50:00 But for Forth, there are no other texts. 12:50:02 Inded. 12:50:04 Indeed* 12:50:19 It also teaches the concepts of functional programming. 12:50:28 And helped my vocabulary a bit. 12:50:29 :) 12:57:17 * kc5tja nods 12:58:23 So, any other languages to suggest? 12:58:30 I know like, C, D, java, and scheme 12:58:40 I am learning forth first, then Ox 12:58:42 Oz 12:58:43 rather 12:59:27 smalltalk is nice 12:59:46 I heard that, but I dunno about another object oriented language. 12:59:51 OO is pretty boring IMO. 12:59:54 i see. understandable. 13:01:04 Factor 13:01:55 I heard that follows a lot of the same concepts as forth. 13:04:30 if you don't mind the dust, you may find occam or erlang interesting. 13:05:29 What do you mean by dust? Oh, and i don't like pattern matching. 13:05:30 :) 13:05:36 I tried erlang. 13:05:50 And threw it away when I saw pattern matching. 13:06:05 dust as in "old language" 13:06:16 Oh, sarcasm. 13:06:29 Err? 13:06:29 what's wrong with pattern matching? 13:06:42 occam has parallel programming constructs on the language level. 13:06:42 I find pattern matching to be the single biggest improvement in programming language implementation in decades. 13:06:52 anyway, off for it crowd series 2. bye. 13:08:27 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 13:08:27 --- mode: ChanServ set +o tathi 13:11:51 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 13:13:47 kc5tja: I do not like it. 13:14:07 kc5tja: pattern matching encourages long words :) 13:14:37 Well, it just doesn't line up in my mind for some reason. 13:14:39 Don't like it. 13:14:45 slava: Positively not in my experience. 13:15:00 if one word has to handle several cases... 13:15:17 You get one word that is a dispatcher to several other words. 13:15:26 It's boilerplate code you don't have to write yourself. 13:15:43 and with generic functioins, i don't have this boilerplate ata ll 13:15:54 Yes you do. 13:16:09 A generic function dispatches based on the types (or other predicates) of its arguments. 13:16:13 That is pattern matching. 13:16:34 yes, and each method is defined individually. 13:16:39 Yes. 13:16:39 so you don't have one big 'dispatcher' 13:16:52 So how does this differ from a language that implements pattern-matching? 13:16:56 Hint: It doesn't. :) 13:17:10 I just feel like pattern matching skips steps sorta. 13:17:18 it does. in ML, pattern matching does not support decoupled methods, like generic functions do 13:17:21 its all in the same function 13:17:36 slava: What do you mean by "decoupled methods?" 13:17:44 GENERIC: area ( shape -- n ) 13:17:50 somewhere else: 13:17:53 M: rectangle area ... ; 13:17:54 Deformati: In a type-safe language, the compiler will issue a warning, at the very least, if you don't cover all the cases. 13:17:55 elsewhere: 13:17:59 M: circle area ... ; 13:18:07 kc5tja: instead of 13:18:08 slava: OK, once again, you're pattern-matching. 13:18:08 : area 13:18:19 { { rectangle ?x ?y } [ ... ] } 13:18:27 { { circle ?r } [ ... ] } 13:18:33 You can delude yourself all you want. It's pattern matching. 13:18:33 } match-cond ; 13:18:45 kc5tja: I do not like it. 13:18:51 :) 13:18:58 Deformati: Then don't use it. But, don't complain about or to those who choose to use it. 13:19:04 kc5tja: both are valid factor programs. the first one uses generic functions, the second one uses pattern matching. 13:19:33 Just explaining why I don't like erlang. 13:19:33 slava: First of all, in a language like Haskell, a pattern-matched function compiles to your M:-based solution. 13:19:33 ._. 13:19:42 So don't diss pattern matching as a whole. 13:19:50 kc5tja: no it doesn't, haskell doesn't let one source unit add patterns to another function elsewhere 13:19:58 my M: definitions don't have to be contiguous in one file 13:20:27 kc5tja: I do not dislike pattern matching because of erlang, I dislike erlang because pattern matching. 13:20:32 slava: Perhaps true, but with type-classes, you get exactly the same effect. 13:20:44 almost 13:20:48 Deformati: Then you'll never like functional programming. 13:21:05 Scheme doesn't really use pattern matching. 13:21:16 Deformati: Scheme is also dynamically typed. 13:21:27 I like it. :) 13:21:28 and you have to use (cond) forms to work around the dynamic typing. 13:21:39 But how is a (cond) form different from pattern matching? 13:21:40 what does dynamic typing ahve to do with pattern matching? 13:21:45 Again, it all compiles the same way. 13:21:56 But it makes more sense to me. 13:21:57 factor is dynamically typed and it has a library which implements pattern matching in only 100 lines oor so 13:22:40 slava: Nice. But irrelevant to the discussion. 13:22:53 Forth also has a chunk of code that implements pattern matching (and even type deconstruction too) 13:22:59 your definition of pattern matching is overly broad. 13:23:06 No. 13:23:08 you seem to be including any type of dynamic dispatch under that umbrella. 13:23:12 Pattern matching is a purely syntactic construct. 13:23:19 It's what allows me to type in: 13:23:22 length [] = 0 13:23:29 length s:ss = (length ss)+1 13:23:37 How the compiler deals with the above is not of my concern. 13:23:39 It could do: 13:24:10 (define (length s:ss) (cond ((null s:ss) 0) (else (+ 1 length (cdr s:ss)))))) 13:24:18 or it could compile to M:-methods... 13:24:21 I couldn't care less. 13:24:28 --- quit: geartooth (No route to host) 13:25:20 Hell, Haskell even allows you to do stuff like F (n+2) = n*2 13:25:47 kc5tja: as far as I can see, you're the only one who's talking about compiling. 13:26:10 tathi: Compiling, interpreting, no difference. That doesn't alter a syntactic sugar. 13:27:32 kc5tja: well, what it looks like to me is that slava was talking about two different syntaxes, and you were saying that they were the same thing because "it all compiles the same way." 13:27:52 * kc5tja sighs 13:28:20 I guess that's not what you're trying to say, but that's how it's coming across, at least to me. 13:28:40 Never mind. 13:29:05 If I can't manage to express "pattern matching is a syntactical structure" any more simply, than it's a lost cause. 13:29:12 I'm just going to give up now. 13:29:22 all i said is that i prefer generic functions to pattern matching 13:30:36 Yes, and a generic function depends on an intermediate "thunk" that is responsible for executing all the conditionals needed to (A) find the correct implementation at run-time, and (B) invoke the appropriate implementation. 13:31:05 Whether this is handled as a linked list, a set of nested case-statements, a decision table, etc., really isn't an issue -- it's a compiler-defined implementation detail. 13:31:36 both generic functions and pattern matching compile to nested conditionals. 13:34:58 --- join: Quartus__ (n=Quartus_@209.167.5.1) joined #forth 13:35:58 Is there a download somewhere for starting forth? 13:43:39 --- join: doublec (n=doublec@203-97-173-6.cable.telstraclear.net) joined #forth 13:43:45 --- quit: doublec (Remote closed the connection) 13:45:00 see the first link in the topic 13:47:58 Just has a link the book, no? 13:49:57 right. 13:50:18 you're looking for a pdf or something? 13:50:47 Well, I tried wget -r 'ing it, but that doesn't work,because there are a lot of links that go off to nowhere. 13:50:52 I didn't see one there. 13:50:58 Wget migh have another option somewhere. 14:13:51 --- join: timlarson__ (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 14:14:55 --- quit: timlarson (Nick collision from services.) 14:15:00 --- nick: timlarson__ -> timlarson 15:02:32 --- nick: Deformati -> Deformative 15:03:59 --- quit: ygrek (Remote closed the connection) 15:15:58 kc5tja - although the FPH is only available in hardcopy, Forth Inc also sells at least Forth Application Techniques. Worthwhile hardcopy books include Thinking Forth (otherwise available, but in print) and Scientific Forth. And of course there are older, less useful tutorial books. I just found Forth for Beginners in the library, next to the author's COBOL for Beginners. 15:18:21 Deformati - Scheme has pattern-matching macro construction. 15:19:07 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-136-118.pools.arcor-ip.net) joined #forth 15:36:19 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 15:36:37 --- nick: snoopy_1711 -> Snoopy42 16:07:38 --- quit: ecraven ("bbl") 16:09:38 --- join: crest__ (n=crest@p5489C4CB.dip.t-dialin.net) joined #forth 16:17:26 --- quit: crest_ (Read error: 110 (Connection timed out)) 16:25:55 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 16:28:13 --- quit: gnomon (Remote closed the connection) 16:31:06 --- join: madgarden (n=madgarde@bas2-kitchener06-1096651024.dsl.bell.ca) joined #forth 17:12:33 --- join: forther (n=forther@c-67-180-150-67.hsd1.ca.comcast.net) joined #forth 17:15:56 --- quit: jns (Remote closed the connection) 17:47:27 --- quit: nighty^ (No route to host) 17:53:43 --- quit: forther ("Leaving") 18:27:29 --- quit: wossname (Connection timed out) 18:32:27 --- quit: tathi ("leaving") 18:38:49 --- join: nighty^ (n=nighty@sushi.rural-networks.com) joined #forth 19:36:45 --- quit: Quartus__ (Read error: 104 (Connection reset by peer)) 19:46:55 --- join: Quartus__ (n=Quartus_@209.167.5.2) joined #forth 20:13:19 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 21:31:51 --- join: Al2O3 (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 21:40:05 --- join: forther (n=forther@c-67-180-150-67.hsd1.ca.comcast.net) joined #forth 21:44:55 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 21:47:43 --- quit: TreyB_ (Read error: 110 (Connection timed out)) 21:52:30 --- quit: forther ("Leaving") 22:31:45 --- quit: wossname (Read error: 110 (Connection timed out)) 22:57:21 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 23:24:40 oh riiiight the time change 23:25:01 thought that I was sitting here for quite a while 23:27:41 --- quit: Quartus (Read error: 110 (Connection timed out)) 23:27:50 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 23:27:50 --- mode: ChanServ set +o Quartus 23:59:59 --- log: ended forth/07.11.03