00:25:37 Fare joined #tunes 00:48:15 [QUIT] BC_V quit: ByeByeByeByeBye 01:13:50 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 01:13:53 oops 01:14:02 hmm an hour late 01:18:03 [QUIT] eihrul quit: Leaving 01:21:27 [QUIT] smkl quit: tolkien.openprojects.net adams.openprojects.net 01:21:49 smkl joined #tunes 01:29:54 smkl joined #tunes 01:31:04 [QUIT] smkl quit: pohl.openprojects.net adams.openprojects.net 01:31:13 smkl joined #tunes 05:15:09 Kyle joined #tunes 05:16:54 Fare joined #tunes 05:27:45 Kyle left #Tunes 05:42:15 Kyle joined #tunes 05:42:24 hi Fare 05:42:34 I have a question on lisp 05:43:15 What can lisp do that C can not? 05:45:27 Can lisp reflect on its own code? I mean in a way more than just quoting? 05:46:11 I read a lisp book, so I would remember what it could do, but it did not help. All I could see was the use of function pointers. 08:39:22 Fare joined #tunes 08:39:22 abi joined #tunes 08:39:22 clog joined #tunes 08:39:32 Kyle joined #tunes 08:39:32 smkl joined #tunes 08:40:34 Fare joined #tunes 08:40:34 abi joined #tunes 08:40:34 clog joined #tunes 08:40:34 smkl joined #tunes 08:40:34 Kyle joined #tunes 09:13:27 Kyle joined #tunes 09:13:27 smkl joined #tunes 09:13:27 Fare joined #tunes 09:14:09 clog joined #tunes 09:14:09 abi joined #tunes 09:17:46 [QUIT] clog quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:46 [QUIT] abi quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:47 [QUIT] nate37 quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:47 [QUIT] Fare quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:47 [QUIT] MysticOne quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:47 [QUIT] ree quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:47 [QUIT] coreyr_ quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:47 [QUIT] smkl quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:47 [QUIT] Kyle quit: barnes.openprojects.net zsoldos.openprojects.net 09:17:58 Fare joined #tunes 09:17:58 smkl joined #tunes 09:17:58 Kyle joined #tunes 09:17:58 abi joined #tunes 09:17:58 clog joined #tunes 09:18:18 Kyle joined #tunes 09:18:18 smkl joined #tunes 09:18:18 Fare joined #tunes 09:18:18 abi joined #tunes 09:18:18 clog joined #tunes 10:42:10 smkl joined #tunes 10:50:10 mibin joined #tunes 11:11:04 eihrul joined #tunes 11:17:07 hcf joined #tunes 11:17:16 icac, http://www.neci.nj.nec.com/homepages/jagannathan/publications.html 11:17:18 [QUIT] hcf quit: Leaving 11:39:16 [QUIT] mibin quit: Ping timeout for mibin[ppp-90-177.21-151.libero.it] 12:18:53 sheesh, guy has done a lot 13:09:55 smklsmkl joined #tunes 13:11:07 [QUIT] smkl quit: Ping timeout for smkl[glubimox.yok.utu.fi] 13:13:08 AlonzoTG joined #tunes 13:13:15 om 13:28:37 Fare joined #tunes 14:47:53 Kyle joined #tunes 15:08:36 AlonzoTG launches a squadron of rabid gnats to annoy the crap out of Fare . 15:18:48 [QUIT] lar1 quit: [BX] I wonder what this button marked "EOF" does... 15:26:35 mibin_ joined #tunes 15:29:03 Where is Fare? 15:29:13 Who here knows lisp/scheme? 15:29:52 i do a bit ... 15:30:11 would you like to answer some questions? 15:30:13 [NICK] mibin_ changed nick to: mibin 15:30:36 yeah, feel free to 15:30:49 What can lisp do that C can not? (general question to get things started) 15:31:02 I would like to discuss one at a time 15:32:09 C is a more limited language 15:32:20 I am aware of the generalities 15:32:30 that is there are many things that are harder to do 15:32:45 harder is a good word. 15:33:45 is lisp type safe? I do not think it is. 15:34:18 hmm, usually not 15:34:25 it isnt if you use an interpreter 15:34:55 with a compiler you can be warned of type incompatibility before running the program 15:36:39 there are some cases in which not even the compiler can figure out if a function will be called with the correct type arguments thougth 15:36:44 though* 15:37:03 Fare is back 15:37:16 this happens at least with stalin ... 15:37:19 Kyle: depends on what you mean by "can" 15:37:20 wb Fare 15:37:32 do you mean "implement", or "express" ? 15:37:52 yea, like harder 15:38:38 in theory you could implement in C anything you could do in lisp 15:38:48 mibin: no 15:38:57 in the worst case you would have to implement a lisp evaluator yourself =) 15:38:57 no? 15:38:59 y not? 15:39:16 the kind of proof used in such case consists in writing in C a LISP evaluator. 15:39:27 and you CANNOT write a LISP evaluator in C. 15:39:34 not in ANSI C, anyway. 15:39:52 what prevents you? 15:40:03 (maybe you can in ISO C; haven't looked at the thing) 15:40:19 is this a distinction between libraries and the language itself? 15:40:21 so you cant really implement a lisp interpreter in ANSI C? 15:40:32 Kyle: impossibility to embed LISP in C. 15:40:43 om 15:40:53 About lisp: 15:40:55 Kyle: good question: it indeed depends on the libraries (and host OS) 15:41:05 How do you handle crap such as the A000 video buffer in lishp? 15:41:13 so the right point of view is to look at the whole system. 15:41:31 i don;t like where you are bringing this :) 15:41:33 Alonzo: you can't do it in C, either. 15:42:00 Well... I can start declaring pointers in C... 15:42:07 AlonzoTG: how do you handle that when you run in 32-bit mode would be better question 15:42:08 So, given C plus libraries, what is still difficult to do, but easy in lisp? 15:42:17 fuck 32 bit mode. 15:42:35 I mean this is something that has bugged me for about two years now... 15:42:36 but nothing warranties that your C implementation will have 0x000A0000 point to the frame buffer. 15:43:03 LISP plus libraries can implement anything C plus libraries can implement. 15:43:17 well, depend which libraries on both sides 15:43:24 I mean I WANT to program my crap in the highest level possible but even on the BEST hardware I'm still gonna have SOME stuff that needs to be interfaced to the HLL... 15:43:36 Fare: Technically yes. But I would like to discuss the expresivness of lisp wrt C 15:43:41 AlonzoTG: use inline assembler 15:43:57 I can barely even do that in C... 15:44:00 =\ 15:44:03 Fare hints that inline assembly existed in LISP long before it ever did in C. 15:44:12 that CAN'T be safe either... 15:44:13 =\ 15:44:27 [QUIT] trans quit: Ping timeout for trans[209.53.49.131] 15:44:42 Kyle does not care about safety for this discussion 15:44:47 AlonzoTG: use talx86, it's safe 15:45:04 I guess I'd refer to the implementation's docs to learn how to do inline....... 15:45:09 "What do you want to type today?" 15:45:10 WTF is talx 86? 15:45:24 dvorak ;) 15:45:31 AlonzoTG: Typed Assembly Language for the X86 15:46:00 oooooooooh 15:46:11 Sounds like C to me. 15:46:18 =P 15:46:31 not worth the bother... 15:46:38 Kyle: then you have to refine your own concepts of "expressiveness", "C", and "LISP", to begin with. 15:46:39 x86 should be shot and creamated... 15:46:50 AlonzoTG: amen. 15:46:50 The places where you need Assembly are places where types would get in the way 15:46:59 Kyle: nope 15:47:13 Kyle: asm can be used for performance 15:47:20 Fare: yes, expressiveness is hard to define 15:47:24 Kyle: consider "dynamically loaded kernel code" 15:47:54 I was hoping to define it if someone would give examples of things easier to do in lisp 15:47:54 as in "packet filters", "graphic routines", etc... 15:48:03 Kyle: callbacks 15:48:18 Kyle: they are HELL to do in C. Trivial in HOLs. 15:48:58 Extending the programming paradigm. Impossible in C. Possible in LISP (see, e.g. Screamer). 15:49:09 Kyle: parsers for complex languages are much easier to implement in lisp =) 15:49:13 is that dweeb lynn here? 15:49:53 Do you have an example of a parser made in lisp? 15:50:22 a C declaration and type parser written in lisp 15:50:24 I will have to get back to you on callbacks, I have forgotten what they are useful for. 15:50:46 So If I read you correctly, you need to write libraries for your HLL to handle LL stuff using assembly? 15:51:33 ATG: why don't you /ignore him? 15:52:00 Kyle: callbacks are for event handling. 15:52:31 AlonzoTG: I would do that, or have a hardware specification langauge. 15:52:35 dynamically generated stateful callbacks are hell in C, trivial in any language that has closures. 15:53:14 refresh my mem, what are "closures"? =\ 15:53:18 Kyle writes the list of lisp advantages down 15:53:51 AlonzoTG just bought Ghram's sekund book on lishp. 15:54:19 ATG: functions that remember their lexical context. 15:55:09 Kyle: type safety, exception management ("conditions", in CL) is great about LISP. 15:55:26 Kyle: the CL Object System is good, too. 15:55:27 =\ 15:56:13 "=\" ? 15:56:36 /= 15:57:15 AlonzoTG is confounded by the answer... 15:58:04 /= is a C operator =) 15:59:11 shaddap 15:59:40 Fare: you have an example of a lisp/scheme/CL callback? 15:59:41 AlonzoTG needs to get himself into some good compiler schoolin... 15:59:53 Kyle reconstructed his memory of callbacks 16:03:40 the other smiley often found in C source code is ');' 16:04:05 otoh lisp allows happier smileys like in '(= a b)' 16:04:22 =P 16:07:55 bye all. thanks. 16:07:58 [QUIT] Kyle quit: Leaving 16:08:20 Kyle: (define (make-counter-button) (letrec ((counter 0) (b (make-button :text "0" :action (lambda () (increment counter) (setf (button-text b) (format "~a" counter)))) b)) 16:09:58 darn 17:18:42 burp 17:31:47 abi joined #tunes 17:31:47 clog joined #tunes 17:31:54 [QUIT] nate37 quit: pohl.openprojects.net lackey.openprojects.net 17:31:54 [QUIT] AlonzoTG quit: pohl.openprojects.net lackey.openprojects.net 17:31:54 [QUIT] ink quit: pohl.openprojects.net lackey.openprojects.net 17:32:14 AlonzoTG joined #tunes 17:59:28 Kyle joined #tunes 18:25:23 clog joined #tunes 18:33:15 [QUIT] abi quit: Ping timeout for abi[bespin.org]