00:00:01 adeht: Oh yes, I forgot this sort of thing could be done 00:00:03 adeht: Much nicer to have a helper macro that you can RETURN out of 00:00:04 -!- xiackok [~Administr@94.54.81.99] has left #lisp 00:00:10 baggles: (- x -1) 00:00:32 baggles: err, (if (minusp x) (- x -1) x) 00:00:50 antifuchs: I'm not giving mine up for building the correct predicate version in other people's code. Screw them! They should get their own brain 00:00:58 drdo: first I would write the function.. then I'd consider a macro that expands to code calling it 00:01:08 adeht: yes, of course 00:01:13 I was suggesting we suggest our brains to determine the correct names for functions (: 00:01:18 baggles: if your number is negative it has already an inifinite number of ones, what more do you want to extend? 00:02:22 this is the thing, i'm going from all positive numbers and i want to interpret the nth bit as the sign, and extend that bit to become the sign 00:02:45 There are a lot of positive numbers in lisp... 00:02:45 seangrove [~user@173-126-161-92.pools.spcsdns.net] has joined #lisp 00:03:00 baggles: you cannot enumerate them all, there's not enough time in the universe for that. 00:03:10 as in, with 7 bits: 0->0, 1->1, 63->63, 64->-64, 65->-63 00:03:23 pjb: maybe in a singularity? 00:03:43 baggles: err, (if (logbitp (1- wordsize) x) (- x -1) x) 00:03:52 -!- HET2 [~diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has quit [Quit: This computer has gone to sleep] 00:04:09 baggles: sure there is: what does sign extension do? it replicates the kth bit. An easy way to do that is to (logior x (- logand x (ash 1 k))). 00:04:33 (modulo a missing parenthesis pair) 00:04:38 adeht: My point was that you don't need the predicate for when to stop, the macro can just expand into a block 00:05:43 tirinim 00:05:54 drdo: that assumes the general case is to process all lines 00:05:59 baggles: notice that the 2-complement 2^word-size representation of -63 is not -63, since in lisp -63 has an infinite number of 1s. It would be (logand (1- (expt 2 wordsize)) -63) which is a positive number (eg 4294967233 when wordsize is 32). 00:06:02 drdo: unconditionally 00:06:06 hem, I'm a bit confused. After a DEFPACKAGE, must I specify IN-PACKAGE? 00:06:14 or is it implicit? 00:06:29 etenil: it's not implicit 00:06:31 that's it pkhuong! thanks! no ifs too :) 00:06:37 adeht: ok, thanks 00:06:39 baggles: said otherwise, 65 IS ALREADY the sign extended representation of -63 on 7 bit. 00:07:21 If only minion was still alive. It feels like I paste that one-liner at least once a month. 00:07:34 good night everyone! 00:07:36 minion! 00:07:39 -!- etenil [~user@93-96-0-153.zone4.bethere.co.uk] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 00:14:18 hello, I've taken some notes on learning lisp while i was doing it these past few months, and I've summarized some of them in a short blog post, if anyone cares to offer gentle criticism: http://pavelpenev.posterous.com/learning-lisp-the-bump-free-way 00:14:58 -!- iwillig [~iwillig@dyn-128-59-150-188.dyn.columbia.edu] has quit [Quit: Leaving] 00:16:48 neoesque [~neoesque@210.59.147.232] has joined #lisp 00:19:36 k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #lisp 00:19:42 its addicting once you get used to it. ---> it's addictive once you get used to it. 00:20:27 -!- freiksenet [~freiksene@cs181130165.pp.htv.fi] has quit [Ping timeout: 240 seconds] 00:20:45 Its not just for AI. People have used it for many other stuff. ---> Its not just for AI. People have used it for a lot of other stuff too. 00:20:51 pavelludiq: That has been written about exhaustively 00:21:08 The community isnt nearly as blood thirsty as some people might portrait it. ---> yes it is :) 00:21:23 ahah, no its not, i've seen worse 00:21:26 :D 00:21:33 *antifuchs* lops off colinh's head, uses it as a wine goblet 00:21:51 questions? (-: 00:22:54 Now I'm headless AND legless :-( 00:23:10 i know its been written about before, if i don't get too lazy i will have a follow-up with more concrete advice, about other confusing things in lisp, as i encounter them 00:23:12 awww. 00:23:19 but one of lisps great advantages ---> but one of Lisp's great advantages 00:23:55 It took me longer than i expected to write it. even after proof reading it, i still missed a lot 00:24:00 thanks 00:24:03 i ---> I (come on!) 00:24:20 -!- mheld [~mheld@129.10.203.42] has quit [Ping timeout: 240 seconds] 00:24:22 (setf *shame* t) 00:24:26 RaceCondition [~RaceCondi@82.131.61.203.cable.starman.ee] has joined #lisp 00:24:32 :-) 00:24:40 Hey Colonh what's with the ---> ? 00:24:52 Wait, you're not a bot, are you? :s 00:24:58 it means "replace with" 00:25:13 Ah, I get it. 00:25:16 does anyone know about a statistics library for CL? 00:25:18 Yes, but I'm programmed in Lisp, so you won't be able to tell for sure 00:25:46 pavelludiq: What do you mean when you are talking about nesting? 00:26:19 lisp syntax is heavily nested, most other languages avoid it 00:26:44 It is true that lisps collection ---> It is true that Lisp's collection 00:26:57 I read that, what do you mean with that? 00:27:08 By any means, dont let that scare you ---> By all means, dont let that scare you 00:27:16 colinh: Please, stop 00:27:38 colinh: i should really write a script to automate the search and replace with your ---> lines 00:27:52 okay. I was nearly finished. Should I have posted somewhere else? 00:28:17 drdo: for example from the zen of python: flat is better than nested 00:28:40 pavelludiq: come on 00:28:45 drdo: i suspect thats true for python because suppose you have a nested block and you want to unnest it 00:28:54 pavelludiq: I have no idea what the zen of python is 00:28:56 drdo: its harder than in lisp 00:29:16 pavelludiq: Can you provide an example? 00:29:26 drdo: its an official short description of what pyhton's philosophy is 00:29:36 Yes, i figured that 00:30:01 drdo: http://www.python.org/dev/peps/pep-0020/ 00:30:10 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit: DarthShrine] 00:30:11 But i don't understand what they mean with that "flat is better than nested" point 00:30:22 pavelludiq: http://en.wikipedia.org/wiki/Catamorphism 00:30:47 sellout [~greg@gw3.tacwap.org] has joined #lisp 00:30:49 mheld [~mheld@129.10.186.230] has joined #lisp 00:31:00 pavelludiq: tell us about something valuable not dogmatic quotes of others. 00:31:19 v0|d: you are not the intended audience 00:31:27 pavelludiq: Again, can you provide an example of what you mean? 00:31:38 pavelludiq: read the page and try to understand. 00:31:54 pavelludiq: and then tell us more about nesting. 00:33:32 hargettp_ [~anonymous@96.237.123.194] has joined #lisp 00:33:40 drdo: in pyhon you generally prefer a list comprehension rather than a call to map with a lamda call in it, or a call to filter, with a call to map as an argument 00:34:38 What's a list comprehension? 00:35:40 drdo: it's like [1..10] for a list that goes from 1 to 10 00:35:51 drdo: at least that's what I remember 00:36:56 drdo: [x*x for x in [1,2, 3, 4] if x%2==0] instead of map(lambda x: x*x,filter(lambda x: x%2==0,[1,2,3,4])) 00:38:27 gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has joined #lisp 00:40:10 Well, the first one is easier to read and more efficient, why wouldn't you prefer it? 00:40:16 What does that have to do with nesting? 00:41:19 xyxxyyy [~xyxu@58.41.3.207] has joined #lisp 00:42:12 Jubb [~ghost@129.21.87.244] has joined #lisp 00:42:51 drdo: the original point was that lisp is homoiconic, and while to an experienced lisper that provides great technical advantages, less experienced ones might be wondering why bother with such strange syntax 00:43:11 -!- colinh [~colin@e181066104.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 00:43:36 pavelludiq: You clearly talked about lisp being more "nested" and most other languages being more "flat" 00:43:40 colinh [~colin@e181071133.adsl.alicedsl.de] has joined #lisp 00:43:44 I still don't understand what you mean with that 00:44:44 drdo: lisp is explicitly expressed as a nested tree structure, while python is not 00:45:08 drdo: should i edit that part to make it clearer? 00:45:21 b 00:45:23 oops. 00:45:34 -!- seangrove [~user@173-126-161-92.pools.spcsdns.net] has quit [Ping timeout: 250 seconds] 00:47:58 drdo: It's certainly my experience that Lisp code tends to be more deeply nested than my code in other languages. 00:48:28 Of course the flip side of that is Python doesn't just have textually flat code, it has very flat namespaces. 00:48:31 I.e. there's not LET. 00:48:35 s/not/no/ 00:49:22 I haven't programmed in other languages in a while 00:49:36 to illustrate, try indenting your lisp code with 8 spaces instead of 2 (for macros and LET and conditionals), and see where you end up (-: 00:49:51 antifuchs: Why would i do such madness? :P 00:50:27 But is that what you mean pavelludiq? LET's 2 spaces indentation versus 0 for python variable declaration? 00:50:50 syntax nazis, love them. 00:51:11 drdo: I think it's not just 2 > 0. It's (2 * N) > 0 00:52:14 murilasso [~murilasso@64.119.157.61] has joined #lisp 00:52:36 gigamonkey: In what context would that happen? Chaining LET's is not exactly common 00:53:19 But it's not just LETs. 00:53:29 drdo: (let () (when condition (let () ...))) 00:53:35 happens from time to time 00:53:53 or m-v-b nests 00:54:08 I think the underlying dynamic is that because in Lisp you can actually accurately delimit scopes, you do which leads to deeper nesting than in, say, Python where all the variables in a function share a scope. 00:54:12 -!- c-u-brick [~mcsontos@hotspot8.rywasoft.net] has quit [Quit: Leaving] 00:55:12 I thought pavelludiq just meant: (f a (ff b c (fff d e))) v. x = fff(d, e); y = ff(b, c, x); z = f(a, y); 00:55:43 And you get things like (sort foo (lambda (x) ...)) 00:55:51 drdo: you can't pass a python block as an argument, or have it in any position were an expression would be, so you generally can't nest arbitrary expressions 00:56:46 Is a python block the same as a CL block? 00:57:05 am anything with leading whitespace is a block in python 00:57:18 like in C, anything between {} is a block 00:57:35 Except that a Python block doesn't introduce a new lexical scope. 00:58:20 -!- rvirding [~chatzilla@h137n1c1o1034.bredband.skanova.com] has left #lisp 00:58:31 flash news! python introducted lexsecoped blocks, great news in 2020! 00:58:57 now coders can do what lispers do for 100 years. 00:59:06 DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #lisp 00:59:06 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host] 00:59:06 DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined #lisp 00:59:12 -!- tcr [~tcr@cpc1-bour5-2-0-cust921.15-1.cable.virginmedia.com] has quit [Quit: Leaving.] 00:59:19 -!- colinh [~colin@e181071133.adsl.alicedsl.de] has quit [Quit: colinh] 00:59:36 -!- hargettp_ [~anonymous@96.237.123.194] has quit [Ping timeout: 240 seconds] 01:00:22 -!- superflit [~superflit@140.226.49.148] has quit [Quit: superflit] 01:01:19 skonek [~artur@178.73.63.81] has joined #lisp 01:01:23 Wow, python's indentation is scope idea is retarded 01:01:54 drdo: the original draft had a rant about that :) 01:02:40 if someday i'll get rich while using lisp, i'll tell everybody that i'was using piton, just to let them love me. 01:02:42 Was trying something in the python repl, then i realised why it didn't work 01:04:34 -!- _danb_ [~user@124-149-166-62.dyn.iinet.net.au] has quit [Read error: Operation timed out] 01:05:18 sykopomp` [~sykopomp@crlspr-24.233.190.221.myacc.net] has joined #lisp 01:05:28 jimrthy_ [~jimrthy@ip68-13-249-220.ok.ok.cox.net] has joined #lisp 01:05:33 -!- jimrthy_ is now known as jimrthy 01:06:08 hargettp_ [~anonymous@96.237.123.41] has joined #lisp 01:06:09 drdo: retarded is relative :) 01:06:33 It sure is 01:07:29 I just don't understand how that is valuable 01:07:40 -!- sykopomp [~sykopomp@unaffiliated/sykopomp] has quit [Ping timeout: 276 seconds] 01:09:19 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Quit: mrSpec] 01:09:23 -!- Blkt [~user@dynamic-adsl-78-13-251-76.clienti.tiscali.it] has quit [Quit: Error: do not makunbound t please!] 01:09:51 -!- hargettp_ [~anonymous@96.237.123.41] has quit [Client Quit] 01:10:10 Olathe [~Olathe@unaffiliated/olathe] has joined #lisp 01:10:55 huangho [~vitor@201-15-187-95.paemt700.dsl.brasiltelecom.net.br] has joined #lisp 01:11:21 skalawag [~user@66-76-154-135.wtx.sta.suddenlink.net] has joined #lisp 01:11:25 -!- pankajm [~pankajm@202.3.77.219] has quit [Ping timeout: 276 seconds] 01:11:48 -!- dfkjjkfd [~paulh@210-11-ftth.onsnetstudenten.nl] has quit [Quit: Lost terminal] 01:11:49 drdo: it's the same as C -- you just omit the {}s. 01:12:14 What I want to know is why something is advertised as the "World's Hardest Sudoku" when it has way more than the minimum number of givens. 01:13:29 it doesn't matter, just point your phone at it and google will solve it for you anyways. :) 01:14:03 google can solve my rubik cube? 01:14:12 is your rubik cube sudoku? 01:14:12 gigamonkey: Hardest depends a lot on how you solve it 01:14:45 drdo: Sure. Let's limit it to humans using their brains and maybe some scratch paper. 01:14:47 Being hard is all about leading the search down very long dead-end path's 01:14:50 google knows nothing about algebra. 01:15:05 gigamonkey: Oh you mean for humans 01:15:29 No Sudoku are particularly hard for computers. 01:15:34 -!- RaceCondition [~RaceCondi@82.131.61.203.cable.starman.ee] has quit [Quit: Computer has gone to sleep] 01:15:49 huangho_ [~vitor@189-30-53-195.paemt700.dsl.brasiltelecom.net.br] has joined #lisp 01:16:55 gigamonkey: If you heuristic is fixed, i.e. you don't change it if you start going down a very long path, some sudoku's can take a long time 01:17:27 -!- huangho [~vitor@201-15-187-95.paemt700.dsl.brasiltelecom.net.br] has quit [Ping timeout: 260 seconds] 01:17:35 -!- huangho_ is now known as huangho 01:17:52 sudoku is linear right? 01:18:09 what do you mean with linear? 01:18:12 RaceCondition [~RaceCondi@82.131.61.203.cable.starman.ee] has joined #lisp 01:18:29 i dont remember exactly 01:18:41 gigamonkey: Then again, i'm talking about improper sudokus, sudokus for humans are solvable with no search 01:18:51 how to play sudoku but if it depends on addition of rows/columns to a constant 01:18:54 it's linear. 01:19:15 pankajm [~pankajm@202.3.77.219] has joined #lisp 01:19:35 v0|d: what? 01:20:13 -!- dto1 is now known as dto 01:20:43 drdo: So I'm talking about the Arto Inkala 2010 puzzle that has 23 givens and is a proper Sudoku compared to the many tens of thousands of 17-given puzzles. 01:20:47 -!- mheld [~mheld@129.10.186.230] has quit [Quit: mheld] 01:20:59 Why would his be harder (for a human) than the 17-given puzzles? 01:21:11 (I'm open to the idea that there is some reason that I'm just not thinking of.) 01:21:12 drdo: every row has to have all numbers right? 01:21:17 I have no idea, i've never actually tried to solve a sudoku manually 01:21:19 it means they sum up to a constant. 01:21:35 drdo: I don't think it's true that all proper sudoku are solvable without search. 01:21:36 ie (reduce #' (list 1 2 .. 9)) 01:21:44 gigamonkey: I don't see how you would measure difficulty, i'm guessing not all people think the same way 01:21:45 I guess it depends on what constraint propagation rules you have. 01:21:49 usually in sudoku, the first few numbers are easy 01:21:50 ie (reduce #'+ (list 1 2 .. 9)) 01:22:56 gigamonkey: Yes, of course it does, when you solve with computers, it's better to have only the 2 basic propagation rules and search, it ends up being faster 01:23:15 But, you can solve every proper sudoku without searching 01:23:59 http://findarticles.com/p/articles/mi_qa3997/is_200803/ai_n25419897/ 01:24:12 non deterministic search is not a very good solution. 01:24:22 try groups actions using symmetric groups. 01:24:53 drdo: do you have a cite for that? 01:25:04 drdo: see it's very similar to my rubik cube. 01:25:07 gigamonkey: For the latter? 01:25:36 -!- skalawag [~user@66-76-154-135.wtx.sta.suddenlink.net] has quit [Ping timeout: 240 seconds] 01:25:41 For the claim that every proper sudoku can be solved without search. 01:25:59 I believe you; I'm curious to read more. 01:26:07 gigamonkey: right because its linear. 01:26:16 It's not very hard to intuitively understand why 01:26:58 drdo: maybe not for you. ;-) 01:27:52 gigamonkey: I'm assuming a proper sudoku means it has a unique solution 01:28:12 Phooodus [~foo@68.107.217.139] has joined #lisp 01:28:13 drdo: yup. 01:30:29 If it has a unique solution, that means each empty square has a unique value, that can be derived from the existing ones 01:31:18 rpg [~rpg@216.243.156.16.real-time.com] has joined #lisp 01:31:21 -!- Phoodus [~foo@68.107.217.139] has quit [Ping timeout: 246 seconds] 01:31:30 what derivation? 01:31:36 there is a set of numbers 01:31:43 and permutations that act on them 01:33:17 drdo: that doesn't sound right to me. 01:33:43 gigamonkey: Maybe i'm overlooking something, what are you thinking? 01:34:21 Well, I don't know how you make the leap from there is a unique solution to you can find it without search. 01:35:35 Which I take to mean, you have an algorithm that would let you pick a square and then pick the digit that goes in that square, repeating until all the squares are filled and the puzzle is solved without ever backtracking. 01:35:53 I'm not sure that's possible 01:36:14 can you count how many unique puzzles are there? 01:36:16 Well then what do you mean by "without searching"? 01:36:27 v0|d: I think that has been done. 01:36:28 When i say without searching, i mean that you never have to guess anything 01:36:31 I think even after constraint propagation you may end up with blank squares in a proper puzzle, so search is still needed 01:36:39 is it 9! for 3x3/ 01:36:40 ? 01:36:54 adeht: If that happens, you have an invalid puzzle 01:36:58 hm oh no it's more complicated than that. 01:37:04 (or you propagation rules are wrong) 01:37:06 *your 01:37:25 drdo: well, what propagation rules are you thinking of? 01:37:41 http://www.sadmansoftware.com/sudoku/solvingtechniques.htm 01:37:44 Here are a lot of them 01:38:03 But are you sure there's some set that will solve all proper Sudoku? 01:38:16 I.e. just by constraint propagation. 01:38:23 Or are you just assuming that? 01:38:41 I'm assuming that 01:38:55 I haven't fomally proved it, it just intuitively makes sense 01:39:39 Okay. I could believe it. But I wondered if you actually knew it was true. 01:40:22 Realise i'm not claiming i know what those rules are or even if anyone knows 01:40:32 I'm just saying that they exist 01:41:03 -!- Jubb [~ghost@129.21.87.244] has quit [Quit: Jubb] 01:41:11 you need to read some design theory book 01:41:22 instead of searching for herustics 01:41:54 v0|d: Show me your sudoku solver then 01:42:02 ive given you the link 01:42:14 give me a working program 01:42:21 drdo: you dont need. 01:42:29 you need pen/pencil 01:42:39 what are you talking about? 01:42:47 start with the generic sudoku, then transform it until it fits the problem 01:42:52 i'm talking about education. 01:43:00 especially theory. 01:43:12 -!- Yuuhi [benni@p5483A502.dip.t-dialin.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 01:43:17 not some stupid herustics that works occasionally 01:43:33 You sound extremelly clueless 01:43:49 okay 01:43:56 count me how many pzzles are there? 01:43:57 v0|d: I don't understand you at all. 01:44:04 A Gazillion. Now what? 01:44:23 gigamonkey: combinatorics is all about counting 01:44:31 then partitioning the puzzles 01:44:36 -!- RaceCondition [~RaceCondi@82.131.61.203.cable.starman.ee] has quit [Quit: Computer has gone to sleep] 01:44:42 This is some good trolling 01:44:45 you can never attack all puzzles at once. 01:45:22 So you're saying, enumerate all solutions and then pick the one that matches your givens? Clearly that's dumb so that's not what you're saying. So what are you saying? 01:45:44 gigamonkey: first think all puzzles / all solutions 01:45:54 than permute one puzzle to the other 01:45:57 and see the relation 01:46:15 if one can be the other using linear combinations than you can classify puzzles 01:46:25 those linear operations are callaed permutations 01:46:40 acting on your set which is {1..9} for 3x3 case 01:47:08 Okay, any solver that starts with "enumerate all puzzles" is, shall we say, not practical. 01:47:36 no you dont need 01:47:58 for instance you can find several permutations when composed result in identity. 01:48:07 -!- gravicappa [~gravicapp@ppp91-78-231-28.pppoe.mtu-net.ru] has quit [Ping timeout: 240 seconds] 01:48:08 just like in the rubik case. 01:48:56 so you can build several operations to visit all puzzles in the parittion without visiting the others. 01:49:01 I don't understand at all what you are saying 01:49:04 otherwise you can be lost very easily. 01:50:04 does it make sense? 01:50:13 drdo: why dont you get a design theory book? 01:50:25 first chapter would tell you what i'm saying. 01:50:40 What does that have to do with sudoku solving? 01:50:53 its combinatorics not just sudoku. 01:51:29 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Quit: rpg] 01:52:55 What makes you think i'm interested in that? 01:53:20 drdo: because you are *clueless* 01:54:03 v0|d: Ok, then show me your sudoku solver 01:55:17 -!- Joreji [~thomas@75-186.eduroam.RWTH-Aachen.DE] has quit [Ping timeout: 264 seconds] 01:57:04 -!- gemelen [~shelta@shpd-95-53-178-15.vologda.ru] has quit [Ping timeout: 276 seconds] 02:01:36 -!- BrandLeeJones [~BrandLeeJ@84.114.246.246] has quit [Quit: BrandLeeJones] 02:02:55 -!- qsun [~qsun@66.220.3.138] has quit [Read error: Operation timed out] 02:06:09 -!- attila_lendvai [~attila_le@catv-89-133-171-67.catv.broadband.hu] has quit [Quit: Leaving.] 02:06:09 sohail [~Adium@unaffiliated/sohail] has joined #lisp 02:06:16 abhinav [~abhinav@122.172.17.90] has joined #lisp 02:06:22 qsun [~qsun@66.220.3.138] has joined #lisp 02:08:29 -!- _s1gma [~herpderp@77.107.164.131] has quit [Quit: Leaving] 02:09:28 -!- k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Quit: Computer has gone to sleep.] 02:12:15 gigamonkey: Python only has one namespace. 02:18:26 skalawag [~user@209.40.169.20] has joined #lisp 02:23:40 gko [~gko@111.82.100.22] has joined #lisp 02:23:48 Zhivago: what do you mean? It doesn't have any package/module or it's a lisp-1? 02:25:31 I think he means the latter 02:26:10 -!- jimrthy [~jimrthy@ip68-13-249-220.ok.ok.cox.net] has quit [Remote host closed the connection] 02:29:53 paul0`` [~user@189.26.129.89.dynamic.adsl.gvt.net.br] has joined #lisp 02:30:14 -!- rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has quit [Remote host closed the connection] 02:30:26 jimrthy [~jimrthy@ip68-13-249-220.ok.ok.cox.net] has joined #lisp 02:31:27 -!- paul0` [~user@189.114.203.189.dynamic.adsl.gvt.net.br] has quit [Ping timeout: 240 seconds] 02:31:47 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: night...] 02:33:46 rpg [~rpg@216.243.156.16.real-time.com] has joined #lisp 02:39:07 -!- ikki [~ikki@201.122.132.181] has quit [Ping timeout: 240 seconds] 02:39:24 -!- skalawag [~user@209.40.169.20] has quit [Remote host closed the connection] 02:41:22 pjb: I mean that it only has one namespace for names. 02:41:47 -!- alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Quit: alexsuraci] 02:41:49 pjb: e.g., foo can only refer to one thing -- be it a module, class, function, variable, ... 02:42:13 pjb: It also can't distinguish names produced by separate authors. 02:42:48 pjb: Actually, I think I was accidentally replying to a very old comment that gigamonkey made -- but I think that it's worthwhile understanding. 02:43:26 pjb: I'd also like to say that CL doesn't have separate namespaces for names, values, classes, etc -- it has separate value spaces for these things. 02:43:52 pjb: The namespaces that CL does have are provided only at the package level. 02:45:06 (Which is why I can't export a class name, for example) 02:46:18 Zhivago: Well, since names are reified in lisp, yes, you cannot export a 'whatever' name. 02:46:29 I can export a name, however. 02:46:36 Eg. you cannot export a block name, or a function name or a type name. 02:46:44 Yes, you can export symbols. 02:46:54 It just has various class, value, function, etc, values attached to it. 02:47:11 Adlai_ [~leif@ool-18bfe51c.dyn.optonline.net] has joined #lisp 02:47:14 Right, but each one in its own namespace. 02:47:20 That's why I say that CL has multiple value spaces as well as multiple namespaces -- but most people get these confused. 02:47:30 No. They're all in the one namespace. 02:47:47 There's only one name for A:A 02:47:58 You just have multiple values associated with A:A. 02:48:10 The multiple namespaces come in with B:A and C:A. 02:48:15 A:A IS a name. 02:48:42 pjb: Yes, and it's unique, in the only namespace that exists 02:48:55 In the function name space, A:A can be bound to #, while at the same time, A:A can be bound in the lexical variable namespace to 42, and in the block namespace, to the block 12. 02:49:14 drdo: there are as many namespace as you care create in lisp. 02:49:34 pjb: You're confusing the difference between multiple names with the difference between multiple values. 02:49:46 And the fact that names are reified (they are symbols) allows the programmer to create new namespaces. 02:49:58 huh? 02:50:31 (with-schmilblick-named foo (do-something (schmilblick foo))) 02:50:37 pjb: It allows the programmer to create new value spaces. 02:50:55 -!- sykopomp` is now known as sykopomp 02:51:16 -!- sykopomp [~sykopomp@crlspr-24.233.190.221.myacc.net] has quit [Changing host] 02:51:16 sykopomp [~sykopomp@unaffiliated/sykopomp] has joined #lisp 02:51:18 So, my question is, do you mean that Python is a lisp-1, or that it does not have packages/modules? 02:52:08 What I mean is that python has one namespace and one value space. 02:52:24 So both. 02:52:41 pjb: no 02:52:56 The fact that it's a lisp-1 is acceptable. Not having packages/modules is unforgiveable. 02:53:31 -!- murilasso [~murilasso@64.119.157.61] has quit [Remote host closed the connection] 02:53:52 what is the difference between (slime-setup) and (slime-setup '(slime-fancy)) ? 02:53:59 Well, what packages solves is the problem of separate authorship. 02:54:19 Having only a single value space means that you have semantic name collisions. 02:55:46 Having multiple namespaces in a more powerful sense than CL does would allow you to use a single value space more effectively -- if you had separate namespaces for classes, functions, values, etc. 02:56:03 Something along the lines of FOO:FUNCTION:BLAH 02:56:22 One can live with a lisp-1. Not without modularity. 02:56:44 Then you could export function blah separately to class blah. 02:57:05 Python has modularity, which is a separate issue. 02:57:46 A module is what maps a name to a value, here. 02:58:13 You can think of CL as having a fixed set of modules -- value, function, class, etc modules. 02:58:28 -!- Adlai_ [~leif@ool-18bfe51c.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 03:02:27 rmarianski [~rmariansk@mail.marianski.com] has joined #lisp 03:02:50 Ralith_ [~ralith@S010600221561996a.vc.shawcable.net] has joined #lisp 03:03:11 -!- jimrthy [~jimrthy@ip68-13-249-220.ok.ok.cox.net] has quit [Ping timeout: 265 seconds] 03:03:12 Zhivago: I'm not sure this refined scheme is worth the complexity.. I find that packages work well in practice and are simple to understand (despite messy debates of the past) 03:04:32 adu [~ajr@pool-72-83-254-159.washdc.fios.verizon.net] has joined #lisp 03:04:33 -!- Ralith [~ralith@S010600221561996a.vc.shawcable.net] has quit [Read error: Connection reset by peer] 03:04:36 -!- Ralith_ is now known as Ralith 03:06:26 sellout- [~greg@c-24-61-13-161.hsd1.ma.comcast.net] has joined #lisp 03:07:24 -!- JuanDaugherty [~Ren@cpe-72-228-177-92.buffalo.res.rr.com] has quit [Quit: Exeunt IRC] 03:09:48 -!- sellout [~greg@gw3.tacwap.org] has quit [Ping timeout: 240 seconds] 03:09:49 -!- sellout- is now known as sellout 03:15:23 -!- paul0`` [~user@189.26.129.89.dynamic.adsl.gvt.net.br] has quit [Ping timeout: 260 seconds] 03:16:27 adeht: Well, packages provide the minimum required, but they don't provide support for two important things. 03:16:32 xinming_ [~hyy@115.221.2.172] has joined #lisp 03:16:53 sure, it could be useful for, say, package locks 03:16:56 adeht: One is semantic layering -- e.g., you could make a FOO_FUN and a FOO_VAR and a FOO_CLASS package. 03:17:22 -!- pizzledizzle [~pizdets@pool-96-250-215-244.nycmny.fios.verizon.net] has quit [] 03:17:39 adeht: But there's no support for that, so you'd end up needing to write FOO_FUN:BAR and FOO_VAR:BAR, since *package* isn't sufficiently expressive. 03:17:45 Zhivago: you'd have to then have a mechanism allowing you to define your own FOO_MYSPACE (heh) 03:18:15 adeht: Well, that would be trivial enough -- it just needs to operate at the level that string to symbol rewriting operates at. 03:18:39 adeht: And to bundle namespaces so that one *package* value can refer to a set. 03:19:19 -!- xinming [~hyy@115.221.11.165] has quit [Read error: Operation timed out] 03:19:32 hargettp_ [~anonymous@96.237.123.41] has joined #lisp 03:19:35 Zhivago: huh? I would think this requires that you be able to specify defining (sub?)forms and such 03:19:41 The other thing that packages don't support well is making collisions easy to avoid -- if two people separately use the same package name, you could easily fix the problem by remapping a package name for the loading of one person's files. 03:21:28 adeht: Well, take (function foo), for example -- there's no reason that your compiler couldn't rewrite that to BAR_FUN:FOO, effectively, in the appropriate contexts. 03:21:51 adeht: Compiler macros are sufficient for user extensions there, imho. 03:22:00 right.. but you need to specify the appropriate contexts 03:23:47 Well, I don't think that's a fundamental problem. 03:24:35 I don't think so either.. I just think it's too much buck for the bang 03:25:35 An alternative would be to support compound names. 03:31:55 Adlai_ [~leif@ool-18bfe51c.dyn.optonline.net] has joined #lisp 03:32:38 for example, you don't need that granularity if you use % for "internal" names that might otherwise conflict with exported ones, ensure the set of imported symbols is known and fixed, etc. 03:33:09 -!- Ginei_Morioka [~irssi_log@78.114.144.5] has quit [Ping timeout: 265 seconds] 03:34:19 (speaking from a practical viewpoint) 03:34:37 parkq [~parkq@209-6-20-163.c3-0.wrx-ubr3.sbo-wrx.ma.cable.rcn.com] has joined #lisp 03:34:57 Ginei_Morioka [~irssi_log@78.112.46.27] has joined #lisp 03:35:59 JuanDaugherty [~Ren@cpe-72-228-177-92.buffalo.res.rr.com] has joined #lisp 03:36:51 Zhivago: I was talking about the difference between global and per-function scope. 03:37:30 giga: Well, they have pretty much the same as lisp with respect to that, these days. 03:39:38 Zhivago: I don't think so because things like looping forms don't introduce new bindings. 03:39:57 So if you have s = something() and then later in the same function: for s in whatever(): ... 03:40:23 after the loop the value of s is whatever the last value of the loop variable was 03:40:38 Unless possibly that has changed in Python3? 03:40:39 Yeah, but they do if you use a form that introduces new bindings, like a function. 03:40:45 No, it's one of their "features". 03:41:01 Well, the *only* thing that introduces new bindings is a function. 03:41:15 Thus, there's the global scope and each function gets its own scope. 03:41:20 Or a lambda expression. 03:41:32 Yeah, and that's pretty much the same as lisp. 03:41:46 Lisp just introduces a lot of functions under the covers, effectively. 03:42:04 Well, it's all machine code in the end. 03:42:21 But that doesn't make every language the same. 03:42:26 gigamonkey: wow, are you serious? (about the loop not shadowing the s and instead modifying it) 03:42:38 drdo: indeed. It's horrific. 03:42:51 I've been bit by that several times in recent days. 03:42:56 drdo: Yeah, it's a feature. :) 03:43:10 Python is a conspiracy to cause people to choose stupid variable names. 03:43:32 gigamonkey: What do you find nice about python? 03:43:56 It looks like pseudo code. 03:44:13 I'm using it for a lot of example code for Code Quarterly articles. 03:44:14 I never understood that pseudo code thing 03:44:23 gigamonkey: provided that pseudocode is very serial and low-level 03:44:59 adeht: well, it's not that low-level. You can express a lot of stuff that's usually ancillary to what you actually want to talk about with list, set, and dictionary comprehensions. 03:45:40 gigamonkey: What are those comprehensions i keep hearing about? 03:46:04 I see it everywhere, and apparently they are going to cure cancer 03:46:21 drdo: dunno about that but they do let you express certain things quite concisely. 03:46:32 And they're well integrated into the language. 03:46:49 gigamonkey: I saw an example here earlier 03:47:08 But i didn't see how it was anything more than a loop subset 03:47:40 Tends to be more concise. For the things it's used for. 03:47:41 You mean things like [b for (a, b) in l if a > 10] 03:47:44 drdo: I just looked it up.. do people actually write x%2==0 inline? 03:47:56 Zhivago: yes. 03:48:10 One difference is that I think they can be generators. 03:48:20 drdo: don't they learn about abstractions? evenp? 03:48:21 Which loop can't handle. 03:48:31 adeht: Why are you talking to me? :P 03:49:44 gigamonkey: So that's it? (why python is nice) 03:50:08 Well, that's why I use it. And I'm using it for a very specific purpose. 03:50:17 those things are a few characters shorter than using iterate 03:50:20 adeht: i haven't touched python in over a year, so when i just wrote a quick line 03:50:22 and way more limited 03:50:39 Limitations are beneficial when they align idiomatically. 03:50:39 When I actually want to write code to experiment with stuff, especially if it needs to be fast, I use Lisp. 03:51:00 I'm just curious as to why people would use python 03:51:20 CL is way nicer in so many ways 03:51:29 But a variety of reasons, some historical, some not, I don't think Common Lisp would be a good choice as a demonstration language in something like Code Quarterly. 03:51:30 and there is no speed excuse 03:52:11 drdo: i used python to teach myself to program, its good for that 03:53:22 pavelludiq: I find scheme is extremelly nice to teach programming 03:53:23 skalawag [~user@c75-111-102-202.amrlcmta01.tx.dh.suddenlink.net] has joined #lisp 03:53:48 drdo: Well, it's all about the core idioms, imho. 03:54:00 drdo: What's the CL equivalent to { "a": "b" }? 03:54:12 I have no idea what that is 03:54:27 Is that a map? 03:54:31 Yes. 03:54:34 drdo: i remember when i was learning scheme and rewrote factorial into python and blew by stack, fun times :) 03:54:37 So, you don't know any python at all, and you're claiming that CL is way nicer? 03:54:43 one of the things I like in Lisp is that you can cherrypick the tokens and precise structure for the concepts you want to express 03:54:56 ("a" "b") 03:54:59 here's CL's equivalent 03:55:04 plist 03:55:27 drdo: So, how do you iterate each name, value pair? 03:56:00 (loop for (k v) in map) 03:56:09 by cddr 03:56:11 by #'ccdr 03:56:36 and on 03:56:44 drdo: Ok, so not only is your solution inefficient, it's also hideously ugly to do basic things with. 03:56:56 v0|d: you still here? 03:57:02 Zhivago: Is it? 03:57:03 Zhivago: but he can use that syntax to represent any mapping 03:57:08 Why is it inneficient? 03:57:14 adeht: eh? 03:57:14 for k, v in {"a": "b"}.items(): ... expresses that more idiomatically. 03:57:24 drdo: Let's say the mapping has 50,000 elements in it ... 03:57:37 Zhivago: Are you going to have a literal map with 50,000 elements? 03:57:38 drdo: Your shitty representation will be really expensive to look things up in. 03:57:51 gigamonkey: he can compute the efficient representation from ("a" "b") and have operators to deal with it conveniently 03:57:57 Also 03:58:05 It's not hard to have a { read-macro 03:58:17 It is, if you're just starting out. 03:58:21 to make whatever type of map representation you want 03:58:34 What CL gives you isn't a good language. It gives you tools upon which to build a good language. 03:58:49 For a neophyte, that's really bad. 03:58:56 Zhivago: right, and this is what I like about Lisp 03:59:12 The thing that matters the most about a language 03:59:16 And that's why python is a better choice for introductory programming. 03:59:26 Zhivago: but you forget that CL also provided lots of already existing facilities 03:59:36 *provides 03:59:37 adeht: None of which help with this extremely basic problem. 03:59:42 Zhivago: I think scheme is pretty awesome 03:59:51 drdo: I think that fish are cute. 04:00:03 Zhivago: It's actually used at my univ on the introductory course 04:00:08 *gigamonkey* finds it strange to be on the same wavelength as Zhivago for once. 04:00:39 drdo: There's nothing wrong with scheme for teaching introductory CS. 04:00:40 paul0`` [~user@189.26.129.89.dynamic.adsl.gvt.net.br] has joined #lisp 04:00:42 *rien* watches the show 04:00:48 drdo: But that's different to teaching introductory programming. 04:01:02 hmm that's a sensible differentiation 04:01:24 Zhivago: Ahmm, we use for introductory programming 04:01:30 -!- Phooodus [~foo@68.107.217.139] has quit [Ping timeout: 246 seconds] 04:01:41 Many places confuse the two. 04:01:53 For introductory theoretical CS we use some crap like matlab 04:02:06 That's an ... interesting choice. 04:02:13 Landr [~vser@78-21-49-156.access.telenet.be] has joined #lisp 04:02:18 It's a horrible choice 04:02:28 Mathematics departed, what are you going to do 04:02:32 *department 04:03:03 is it possible to change the cdr value of a cell directly? 04:03:13 Landr: (setf (cdr x) 10) 04:03:14 *slyrus_* wasted 2 years rewriting crap that I would have gotten for "free" in matlab because I liked CL so much better than matlab 04:03:24 Landr: What is changing it "indirectly" ? 04:03:26 Unfortunately it only works if you want to set it to 10 ;-) 04:03:49 slyrus: always choose the right tool for the job :) 04:04:21 drdo: I want to make '(1 2 3 4 5) change so that it becomes '(1 2 3 6 7) 04:04:22 drdo: consing the car to a new list? :P 04:04:36 so i wanted to change the cdr of 3 to point to 6 04:04:49 (assuming '(6 7) exists) 04:04:54 -!- lemoinem [~swoog@216.252.75.212] has quit [Remote host closed the connection] 04:04:56 Landr: Sure, i was just curious what you meant when you said "directly" and what would "indirectly" be 04:05:09 well, by making a new list :P 04:05:13 then using setf 04:05:20 lemoinem [~swoog@216.252.80.168] has joined #lisp 04:05:22 huh? 04:05:34 well, most functions work by value, no? 04:05:41 they don't actually alter anything 04:05:57 Landr: do watch out, however, about setf'ing literal lists 04:06:05 Can you give an example of directly changing it and indirectly changing it? 04:06:19 I.e. '(1 2 3 4 5) is a literal and you're not supposed to muck with it. 04:06:25 But (list 1 2 3 4 5) is fine. 04:06:26 -!- pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has quit [Ping timeout: 265 seconds] 04:06:33 I wonder why there isn't a (setf nthcdr) 04:06:33 ah, didn't know that 04:07:01 adeht: I remember writing one as an answer to a stackoverflow question 04:07:24 adeht: because if you want that, you want the wrong thing? 04:07:36 Was about to say that 04:07:43 how come? 04:08:18 adeht: Why do you want that? 04:08:30 Because it suggests you're using a list for random access. 04:08:32 for symmetry with cdr and (setf cdr) 04:08:43 gigamonkey: then why have nthcdr at all? 04:08:57 Because sometimes we want things that are bad for us. ;-) 04:09:01 He does have a point 04:09:06 (adeht) 04:09:20 ahh, now i see why it didn't work 04:09:30 setf nthcdr should probably exist though 04:09:38 indeed, if i use (list instead of '( it works, thanks :> 04:09:51 landr: You may not modify literals. 04:10:03 -!- hargettp_ [~anonymous@96.237.123.41] has quit [Quit: hargettp_] 04:10:25 i forgot it was a literal :< thought it was shorthand 04:10:35 It's shorthand, for QUOTE 04:10:46 adeht: you can always (setf (cdr (nthcdr (1- n) list)) ...) 04:11:09 -!- JuanDaugherty [~Ren@cpe-72-228-177-92.buffalo.res.rr.com] has quit [Quit: Exeunt IRC] 04:11:16 gigamonkey: You can always do anything, turing completeness etc :P 04:11:18 Hmm (setf nth) exists. 04:11:18 gigamonkey: except when N is 0 :).. but you're now giving the definition for a (setf nthcdr) 04:12:01 Okay, setf nthcdr shoud exist as a further trap to the unreconstructed C and FORTRAN programmers. 04:12:37 What? 04:13:04 gigamonkey: I was gonna say that, make its performance slow and all :) 04:18:38 drdo: folks who don't notice that CL actually has arrays, will use lists like arrays and do things like: (dotimes (i (length x)) (setf (nth i x) (+ 1 (nth i x)))) 04:19:00 hmm, so why is it impossible to change literals? Is it because they aren't cells, but contents of cells? 04:19:39 Same reason you can't mess with literal strings in C 04:19:50 They're part of the program, not your data. 04:20:55 gigamonkey: That's... interesting, i've never seen that happen 04:21:29 Landr: so that the objects don't need to be set up anew for every use, can be coalesced, stored in ROM, etc. 04:21:56 ah, that makes sense 04:22:05 i think... 04:22:22 *Landr* goes back to trying to 'get it' 04:23:37 Landr: They are exactly the same as any other, except that you are not supposed to mutate them 04:26:13 azaq23 [~derivecto@unaffiliated/azaq23] has joined #lisp 04:38:00 -!- ebzzry_ [~ebzzry@203.213.202.186] has quit [Quit: Leaving] 04:40:52 pnq [~nick@ACA24314.ipt.aol.com] has joined #lisp 04:45:13 -!- parkq [~parkq@209-6-20-163.c3-0.wrx-ubr3.sbo-wrx.ma.cable.rcn.com] has quit [Quit: Computer has gone to sleep.] 04:48:14 -!- az [~az@p4FE4F979.dip.t-dialin.net] has quit [Ping timeout: 250 seconds] 04:52:03 gigamonk` [~user@adsl-99-24-216-200.dsl.pltn13.sbcglobal.net] has joined #lisp 04:52:57 -!- gigamonkey [~user@adsl-99-24-223-31.dsl.pltn13.sbcglobal.net] has quit [Read error: Connection reset by peer] 04:53:21 Sluggo [~user@c-75-64-77-87.hsd1.tn.comcast.net] has joined #lisp 04:55:40 az [~az@p4FE4F54D.dip.t-dialin.net] has joined #lisp 04:57:24 -!- Sluggo [~user@c-75-64-77-87.hsd1.tn.comcast.net] has quit [Quit: reset] 04:57:33 -!- quek [~ancient@router1.gpy1.ms246.net] has quit [Read error: Connection reset by peer] 05:07:14 Sluggo [~user@c-75-64-77-87.hsd1.tn.comcast.net] has joined #lisp 05:07:17 zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has joined #lisp 05:07:21 -!- gigamonk` is now known as gigamonkey 05:07:49 -!- gko [~gko@111.82.100.22] has quit [Ping timeout: 255 seconds] 05:09:42 ebzzry [~ebzzry@203.213.202.186] has joined #lisp 05:10:22 Hi! I'm curious, what's the closest thing open source Lisps offer with regards to tree-shaking? 05:17:55 check out http://jsnell.iki.fi/blog/archive/2005-07-06.html .. likely you need to adapt it to get it to work 05:19:47 -!- zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has quit [Ping timeout: 240 seconds] 05:19:52 (sleepety sleep) 05:21:01 zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has joined #lisp 05:22:05 -!- Olathe [~Olathe@unaffiliated/olathe] has quit [Quit: leaving] 05:22:41 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Quit: rpg] 05:23:27 daniel [~daniel@p5B327FDF.dip.t-dialin.net] has joined #lisp 05:27:31 -!- daniel_ [~daniel@p508299BD.dip.t-dialin.net] has quit [Ping timeout: 276 seconds] 05:28:05 thmzlt [~thomaz@24-217-48-63.dhcp.stls.mo.charter.com] has joined #lisp 05:29:01 -!- Kruppe [~user@CPE00222d128ba2-CM00222d128b9e.cpe.net.cable.rogers.com] has quit [Ping timeout: 255 seconds] 05:29:02 HET2 [~diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has joined #lisp 05:29:54 -!- thmzlt [~thomaz@24-217-48-63.dhcp.stls.mo.charter.com] has quit [Client Quit] 05:30:37 -!- huangho [~vitor@189-30-53-195.paemt700.dsl.brasiltelecom.net.br] has quit [Ping timeout: 260 seconds] 05:31:27 -!- pnq [~nick@ACA24314.ipt.aol.com] has quit [Read error: Connection reset by peer] 05:31:29 -!- rmarianski [~rmariansk@mail.marianski.com] has quit [Quit: leaving] 05:32:34 -!- warzl [~warzl@159.153.4.50] has quit [Read error: Connection reset by peer] 05:43:05 alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #lisp 05:43:08 -!- gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has quit [Quit: gonzojive] 05:43:32 -!- gigamonkey [~user@adsl-99-24-216-200.dsl.pltn13.sbcglobal.net] has quit [Read error: Connection reset by peer] 05:44:38 gigamonkey [~user@adsl-99-24-216-179.dsl.pltn13.sbcglobal.net] has joined #lisp 05:55:53 ln [60f0004e@gateway/web/freenode/ip.96.240.0.78] has joined #lisp 05:57:26 is (=) (eql) ? 05:57:40 No. 05:57:42 -!- dmiles_afk [~dmiles@c-67-161-117-56.hsd1.wa.comcast.net] has quit [Read error: Connection reset by peer] 05:58:26 does it map to one of the other equality tests ? 06:02:23 reading the language reference might prove enlightening 06:04:41 I saw some post on c.l.l which compared three such functions in CL to Ruby ones, I already forgot what they were though 06:04:47 =, eq and eql or something? 06:07:45 -!- ln [60f0004e@gateway/web/freenode/ip.96.240.0.78] has quit [Quit: Page closed] 06:10:49 dmiles_afk [~dmiles@c-67-161-117-56.hsd1.wa.comcast.net] has joined #lisp 06:12:12 -!- qfr- is now known as kuffaar 06:17:17 stis [~stis@1-1-1-39a.veo.vs.bostream.se] has joined #lisp 06:21:48 Harag [~Harag@wbs-41-208-211-15.wbs.co.za] has joined #lisp 06:21:50 -!- Ginei_Morioka [~irssi_log@78.112.46.27] has quit [Ping timeout: 265 seconds] 06:22:06 k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #lisp 06:23:37 Ginei_Morioka [~irssi_log@78.112.65.246] has joined #lisp 06:25:48 -!- HET2 [~diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has quit [Quit: This computer has gone to sleep] 06:25:55 -!- lorenz__ [~moesenle@atradig141.informatik.tu-muenchen.de] has quit [Ping timeout: 272 seconds] 06:26:02 kuffaar: Why would you want to compare them with the ones in Ruby? 06:26:41 ebzzry because then I'm on more familiar ground :p 06:27:25 You should rather read http://www.nhplace.com/kent/PS/EQUAL.html 06:28:37 Yes 06:29:13 -!- dmiles_afk [~dmiles@c-67-161-117-56.hsd1.wa.comcast.net] has quit [Read error: Connection reset by peer] 06:31:32 kuffaar: It may worth be pointing out that it isn't technically correct to compare CL equality operators with the ones found in other languages. 06:31:43 Very well 06:32:44 dmiles_afk [~dmiles@c-67-161-117-56.hsd1.wa.comcast.net] has joined #lisp 06:33:11 -!- dmiles_afk [~dmiles@c-67-161-117-56.hsd1.wa.comcast.net] has quit [Read error: Connection reset by peer] 06:33:58 kushal [~kdas@fedora/kushal] has joined #lisp 06:34:45 dmiles_afk [~dmiles@c-67-161-117-56.hsd1.wa.comcast.net] has joined #lisp 06:35:39 -!- adu [~ajr@pool-72-83-254-159.washdc.fios.verizon.net] has quit [Quit: adu] 06:35:46 -!- zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has quit [Ping timeout: 276 seconds] 06:48:27 -!- kushal [~kdas@fedora/kushal] has quit [Ping timeout: 240 seconds] 06:52:27 -!- gigamonkey [~user@adsl-99-24-216-179.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 240 seconds] 06:56:29 freiksenet [~freiksene@cs181130165.pp.htv.fi] has joined #lisp 07:00:37 What's the factorial function called in CL? 07:00:59 You write one 07:01:06 aidalgol: typically, factoral or fact. It's not provided by the language, though. 07:01:12 *factorial 07:02:41 -!- hemanth is now known as Guest67489 07:03:25 hemanth [~hemanth@122.167.195.208] has joined #lisp 07:06:41 -!- azaq23 [~derivecto@unaffiliated/azaq23] has quit [Quit: Leaving.] 07:16:35 -!- mephisto_ [~mephisto@CPE00163625fbf5-CM00407b85ff2a.cpe.net.cable.rogers.com] has quit [Ping timeout: 272 seconds] 07:19:04 mephisto_ [~mephisto@CPE00163625fbf5-CM00407b85ff2a.cpe.net.cable.rogers.com] has joined #lisp 07:22:45 sharps [~hazel@ip-118-90-50-156.xdsl.xnet.co.nz] has joined #lisp 07:25:59 ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has joined #lisp 07:28:00 -!- paul0`` [~user@189.26.129.89.dynamic.adsl.gvt.net.br] has quit [Ping timeout: 240 seconds] 07:28:58 echo-area [~user@114.251.86.0] has joined #lisp 07:29:12 flip214 [~marek@unaffiliated/flip214] has joined #lisp 07:33:47 mvilleneuve [~mvilleneu@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has joined #lisp 07:34:00 good morning 07:37:48 RaceCondition [~RaceCondi@82.131.61.203.cable.starman.ee] has joined #lisp 07:42:18 -!- sohail [~Adium@unaffiliated/sohail] has quit [Quit: Leaving.] 07:42:34 leo2007 [~leo@120.37.24.87] has joined #lisp 07:43:37 tcr1 [~tcr@cpc1-bour5-2-0-cust921.15-1.cable.virginmedia.com] has joined #lisp 07:44:00 -!- Odin- [~sbkhh@s121-302.gardur.hi.is] has quit [Ping timeout: 265 seconds] 07:44:59 easyE [0VPb2uz3C5@panix2.panix.com] has joined #lisp 07:49:16 mega1 [~quassel@catv4E5CABA2.pool.t-online.hu] has joined #lisp 07:55:06 ebzzry_ [~ebzzry@203.213.202.186] has joined #lisp 07:55:51 -!- ebzzry [~ebzzry@203.213.202.186] has quit [Read error: Connection reset by peer] 07:56:01 -!- tcr1 [~tcr@cpc1-bour5-2-0-cust921.15-1.cable.virginmedia.com] has quit [Quit: Leaving.] 07:56:46 jdz [~jdz@193.206.22.97] has joined #lisp 07:56:57 mrSpec [~Spec@89-75-35-251.dynamic.chello.pl] has joined #lisp 07:56:57 -!- mrSpec [~Spec@89-75-35-251.dynamic.chello.pl] has quit [Changing host] 07:56:57 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 07:57:05 trebor_dki [~user@mail.dki.tu-darmstadt.de] has joined #lisp 07:58:38 phao [~phao@189.107.206.60] has joined #lisp 08:00:19 -!- benny [~benny@i577A792B.versanet.de] has quit [Remote host closed the connection] 08:04:02 -!- homie [~levgue@xdsl-78-35-180-55.netcologne.de] has quit [Read error: Connection reset by peer] 08:04:16 -!- sonnym [~evissecer@rrcs-184-74-137-167.nys.biz.rr.com] has quit [Quit: Leaving.] 08:05:30 homie [~levgue@xdsl-78-35-132-214.netcologne.de] has joined #lisp 08:06:50 -!- trebor_dki [~user@mail.dki.tu-darmstadt.de] has quit [Remote host closed the connection] 08:08:05 ebzzry__ [~ebzzry@112.202.246.39] has joined #lisp 08:11:57 quek [~ancient@router1.gpy1.ms246.net] has joined #lisp 08:12:07 -!- ebzzry_ [~ebzzry@203.213.202.186] has quit [Ping timeout: 276 seconds] 08:14:05 mcsontos [~mcsontos@nat/redhat/x-looeunbhmrdqycna] has joined #lisp 08:14:23 -!- pdo_ [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has quit [Quit: pdo_] 08:18:06 -!- sharps [~hazel@ip-118-90-50-156.xdsl.xnet.co.nz] has quit [Quit: Leaving.] 08:18:25 hello mvilleneuve 08:18:44 mvilleneuve: Can I /msg to you? 08:19:16 -!- chrnybo [~user@148.122.202.244] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 08:20:24 -!- abhinav [~abhinav@122.172.17.90] has quit [Ping timeout: 240 seconds] 08:21:26 spiaggia: sure 08:21:43 thom_ [~thom@pool-74-100-140-188.lsanca.fios.verizon.net] has joined #lisp 08:21:48 -!- Sluggo [~user@c-75-64-77-87.hsd1.tn.comcast.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 08:22:09 join #linux 08:27:06 -!- quek [~ancient@router1.gpy1.ms246.net] has quit [Remote host closed the connection] 08:28:56 valium97682 [~daniel@189-47-113-196.dsl.telesp.net.br] has joined #lisp 08:29:27 -!- valium97582 [~daniel@187.74.35.156] has quit [Ping timeout: 240 seconds] 08:34:18 misterncw [~misterncw@82.71.241.25] has joined #lisp 08:35:43 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Ping timeout: 255 seconds] 08:36:18 etenil [~user@82.45.133.100] has joined #lisp 08:36:23 Hey everyone! 08:36:34 -!- phao [~phao@189.107.206.60] has left #lisp 08:36:44 hello etenil 08:37:34 spiaggia: i'm not from the grammar police, but: s/can/may 08:38:05 jdz: You might as well be. :) 08:38:11 -!- hemanth [~hemanth@122.167.195.208] has quit [Remote host closed the connection] 08:39:12 -!- biTT [~frinnn@i59F63E1B.versanet.de] has quit [Ping timeout: 250 seconds] 08:39:38 varjag [~eugene@122.62-97-226.bkkb.no] has joined #lisp 08:39:58 I've improved my lisp program and I wrote a macro that iterates on each line of a file. Here's the code: http://pastebin.com/EAXVCHT1. 08:40:17 e-user [~akahl@nat/nokia/x-mfnighuonxxreewi] has joined #lisp 08:40:40 morphling [~stefan@gssn-5f754c71.pool.mediaWays.net] has joined #lisp 08:40:50 I'm not really happy with the macro, if anyone has some suggestions to improve it, It'd be nice 08:42:26 aerique [euqirea@xs3.xs4all.nl] has joined #lisp 08:43:52 -!- statonjr [~statonjr@cpe-071-075-085-085.carolina.res.rr.com] has quit [Ping timeout: 255 seconds] 08:43:57 -!- billitch [~billitch@host-78-129-3-155.brutele.be] has quit [Ping timeout: 246 seconds] 08:44:42 biTT [~frinnn@i59F60855.versanet.de] has joined #lisp 08:45:28 Hun [~Hun@host-80-81-19-29.customer.m-online.net] has joined #lisp 08:45:43 splittist [~John@202-173.203-62.cust.bluewin.ch] has joined #lisp 08:45:46 morning 08:46:18 HET2 [~diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has joined #lisp 08:46:44 -!- neoesque [~neoesque@210.59.147.232] has quit [Quit: Bye!] 08:46:51 kushal [~kdas@fedora/kushal] has joined #lisp 08:47:22 etenil: have you tried implementing that without such a macro? I'm not convinced it is necessary, and it make the code hard for me to understand 08:48:04 ebzzry_ [~ebzzry@203.213.202.186] has joined #lisp 08:50:20 jsoft [~jsoft@unaffiliated/jsoft] has joined #lisp 08:50:36 :) 08:51:47 insomnia1alt [~milan@port-92-204-43-243.dynamic.qsc.de] has joined #lisp 08:52:13 -!- ebzzry__ [~ebzzry@112.202.246.39] has quit [Ping timeout: 272 seconds] 08:53:28 -!- leo2007 [~leo@120.37.24.87] has quit [Ping timeout: 240 seconds] 08:55:23 -!- insomniaSalt [~milan@port-92-204-116-127.dynamic.qsc.de] has quit [Ping timeout: 272 seconds] 08:56:16 kiuma [~kiuma@85-18-55-37.ip.fastwebnet.it] has joined #lisp 08:57:27 arbscht: yes I did, and I was strongly advised to either make a function or a macro instead. That seemed sensible. 08:58:47 etenil: I have not seen the previous version, but the advice to make a function is probably sound. I would try that before resorting to a macro in this case 08:59:42 :'( 08:59:54 etenil: it seems to me that the pattern of iterating over lines might be easily expressed with LOOP, too 08:59:57 the nice thing about making it a macro is that the body can break from the loop 09:00:22 arbscht: I don't like LOOP, it's overly complicated 09:00:40 (,@condition) can be written ,condition by the way 09:00:48 etenil: I'm not sure this alternative is simpler :) 09:01:03 etenil: there may be reasons not to like LOOP, but I don't think that is one of them. 09:02:52 koning_r1bot: one can always break from any loop in CL 09:03:49 koning_r1bot: throw/catch are there for a reason 09:04:06 jdz: but not from a functional abstraction which gets the body passed in as a function 09:04:15 koning_r1bot: why not? 09:06:19 Dranik [~dim@86.57.253.61] has joined #lisp 09:06:23 etenil: I think of mapping-style abstractions as functional. I'd expect map-lines-in-file to be a function that accepts another function, like MAPCAR or something, and not a macro. if it had to be a macro, I'd name it with-lines-in-file 09:06:39 jdz: i may be talking shit, sorry, let me check my facts 09:06:47 tcr1 [~tcr@cpc1-bour5-2-0-cust921.15-1.cable.virginmedia.com] has joined #lisp 09:09:41 -!- cmm [~cmm@bzq-79-178-206-31.red.bezeqint.net] has quit [Ping timeout: 264 seconds] 09:10:07 jdz: yeah i was definitely talking shit 09:10:15 cmm [~cmm@bzq-79-178-206-31.red.bezeqint.net] has joined #lisp 09:10:35 tfb [~tfb@92.40.191.130.sub.mbb.three.co.uk] has joined #lisp 09:11:23 sharps [~hazel@ip-118-90-50-156.xdsl.xnet.co.nz] has joined #lisp 09:13:15 yvdriess [~Beef@soft85.vub.ac.be] has joined #lisp 09:13:57 silenius [~silenus@cpe-76-87-89-40.socal.res.rr.com] has joined #lisp 09:16:09 etenil, koning_r1bot: http://paste.lisp.org/display/118613 09:19:02 -!- HET2 [~diman@cpc1-cdif12-2-0-cust125.5-1.cable.virginmedia.com] has quit [Quit: This computer has gone to sleep] 09:19:04 -!- timchen1` [tim@163.16.211.21] has quit [Ping timeout: 250 seconds] 09:19:19 -!- twem2 [~tristan@puma-mxisp.mxtelecom.com] has quit [Remote host closed the connection] 09:19:39 thanks jdz 09:19:46 timchen1` [~vzloct_21@kalug.ks.edu.tw] has joined #lisp 09:20:25 lorenz [~moesenle@atradig141.informatik.tu-muenchen.de] has joined #lisp 09:21:38 -!- silenius [~silenus@cpe-76-87-89-40.socal.res.rr.com] has quit [Quit: Leaving] 09:22:23 -!- etenil [~user@82.45.133.100] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 09:22:39 well, the functions do not do the same thing (after the lameness is fixed), but still, my points are clear 09:24:00 simple loops like that are simple really, no reason to be afraid 09:24:38 carlocci [~nes@93.37.209.132] has joined #lisp 09:25:43 -!- timchen1` [~vzloct_21@kalug.ks.edu.tw] has quit [Ping timeout: 255 seconds] 09:27:27 timchen1` [tim@kalug.ks.edu.tw] has joined #lisp 09:29:05 -!- kleppari [~spa@bitbucket.is] has quit [Read error: Operation timed out] 09:29:40 kleppari [~spa@bitbucket.is] has joined #lisp 09:30:09 -!- kushal [~kdas@fedora/kushal] has quit [Ping timeout: 246 seconds] 09:31:09 gemelen [~shelta@shpd-92-101-156-201.vologda.ru] has joined #lisp 09:35:23 -!- xyxxyyy [~xyxu@58.41.3.207] has quit [Quit: Leaving.] 09:41:25 -!- varjag [~eugene@122.62-97-226.bkkb.no] has quit [Ping timeout: 255 seconds] 09:42:51 varjag [~eugene@122.62-97-226.bkkb.no] has joined #lisp 09:45:18 trebor_dki [~user@mail.dki.tu-darmstadt.de] has joined #lisp 09:48:52 billitch [~billitch@14.7-64-87.adsl-dyn.isp.belgacom.be] has joined #lisp 09:54:33 Good evening everyone! 09:59:31 good evening beach 10:00:24 -!- tcr1 [~tcr@cpc1-bour5-2-0-cust921.15-1.cable.virginmedia.com] has quit [Ping timeout: 240 seconds] 10:00:25 SpitfireWP [~Spitfire@wikipedia/spitfire] has joined #lisp 10:02:51 BrandLeeJones [~BrandLeeJ@84.114.246.246] has joined #lisp 10:03:58 petercoulton [~petercoul@cpc2-midd16-2-0-cust169.11-1.cable.virginmedia.com] has joined #lisp 10:07:08 H4ns` [~user@pD4B9E4DB.dip.t-dialin.net] has joined #lisp 10:07:28 stassats [~stassats@wikipedia/stassats] has joined #lisp 10:11:04 -!- SpitfireWP [~Spitfire@wikipedia/spitfire] has quit [Quit: It's getting dark, too dark to see] 10:11:04 -!- H4ns [~user@pD4B9E011.dip.t-dialin.net] has quit [Ping timeout: 250 seconds] 10:12:55 bah - why does my clisp winsock error when quicklisping ): 10:23:53 -!- homie [~levgue@xdsl-78-35-132-214.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 10:26:41 hlavaty [~user@95-88-27-48-dynip.superkabel.de] has joined #lisp 10:26:48 -!- billitch [~billitch@14.7-64-87.adsl-dyn.isp.belgacom.be] has quit [Ping timeout: 240 seconds] 10:28:46 Oh well, IIDNEASA 10:30:31 -!- morphling [~stefan@gssn-5f754c71.pool.mediaWays.net] has quit [Read error: Connection reset by peer] 10:30:32 homie [~levgue@xdsl-78-35-132-214.netcologne.de] has joined #lisp 10:37:37 :q 10:41:01 -!- BrandLeeJones [~BrandLeeJ@84.114.246.246] has quit [Quit: BrandLeeJones] 10:41:02 -!- kleppari [~spa@bitbucket.is] has quit [Remote host closed the connection] 10:41:07 kleppari [~spa@bitbucket.is] has joined #lisp 10:43:19 citizen428 [~citizen42@chello213047077012.23.11.vie.surfer.at] has joined #lisp 10:43:47 paul0`` [~user@189.26.129.89.dynamic.adsl.gvt.net.br] has joined #lisp 10:51:29 gravicappa [~gravicapp@ppp91-78-231-28.pppoe.mtu-net.ru] has joined #lisp 10:55:14 Yay - have lispbuilder-sdl mandelbrot example working. And the moment I typed that, clisp crashed. Curse my premature celebration! 11:04:19 -!- k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Quit: Computer has gone to sleep.] 11:05:16 -!- stis [~stis@1-1-1-39a.veo.vs.bostream.se] has quit [Remote host closed the connection] 11:05:22 Odin- [~sbkhh@s121-302.gardur.hi.is] has joined #lisp 11:05:30 hargettp_ [~anonymous@96.237.123.41] has joined #lisp 11:06:50 -!- rme [rme@clozure-1F3CDCA9.chi01.dsl-w.verizon.net] has quit [Quit: rme] 11:06:51 -!- rme [~rme@pool-70-106-129-201.chi01.dsl-w.verizon.net] has quit [Quit: rme] 11:07:37 JuanDaugherty [~Ren@cpe-72-228-177-92.buffalo.res.rr.com] has joined #lisp 11:09:28 schoppenhauer [~christoph@unaffiliated/schoppenhauer] has joined #lisp 11:13:39 -!- homie [~levgue@xdsl-78-35-132-214.netcologne.de] has quit [Remote host closed the connection] 11:20:03 -!- paul0`` [~user@189.26.129.89.dynamic.adsl.gvt.net.br] has quit [Ping timeout: 246 seconds] 11:21:16 Joreji [~thomas@75-186.eduroam.RWTH-Aachen.DE] has joined #lisp 11:27:31 ZabaQ [~john.conn@playboxgames.com] has joined #lisp 11:31:19 zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has joined #lisp 11:32:18 can anyone give an example of what a custom method combination could possibly be useful for? 11:33:56 astoon [~astoon@178.130.1.36] has joined #lisp 11:34:08 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 260 seconds] 11:36:45 ZabaQ: maybe for doing things that don't fit any of the pre-defined method combinations? 11:37:15 Yuuhi [benni@p5483AA24.dip.t-dialin.net] has joined #lisp 11:40:38 statonjr [~statonjr@cpe-071-075-085-085.carolina.res.rr.com] has joined #lisp 11:44:04 -!- misterncw [~misterncw@82.71.241.25] has quit [Remote host closed the connection] 11:46:27 ZabaQ: for instance you might want the least (not most) specific around method outermost 11:47:11 tcr1 [~tcr@cpc1-bour2-0-0-cust414.15-1.cable.virginmedia.com] has joined #lisp 11:50:09 -!- zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has quit [Ping timeout: 246 seconds] 11:52:25 -!- Harag [~Harag@wbs-41-208-211-15.wbs.co.za] has quit [Ping timeout: 255 seconds] 11:53:42 aha - I found an example in the wild after much googling 11:54:22 attila_lendvai [~attila_le@catv-89-133-171-67.catv.broadband.hu] has joined #lisp 11:54:28 adds :wrapping and ;wrap-around methods 11:55:25 -!- mega1 [~quassel@catv4E5CABA2.pool.t-online.hu] has quit [Read error: Operation timed out] 11:55:38 -!- alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Quit: alexsuraci] 11:57:32 _danb_ [~user@124-149-166-62.dyn.iinet.net.au] has joined #lisp 12:04:54 dfkjjkfd [~paulh@210-11-ftth.onsnetstudenten.nl] has joined #lisp 12:08:00 -!- Yuuhi [benni@p5483AA24.dip.t-dialin.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 12:09:07 Yuuhi [benni@p5483AA24.dip.t-dialin.net] has joined #lisp 12:09:41 -!- valium97682 [~daniel@189-47-113-196.dsl.telesp.net.br] has quit [Ping timeout: 264 seconds] 12:09:52 valium97582 [~daniel@189-47-113-196.dsl.telesp.net.br] has joined #lisp 12:11:19 -!- Joreji [~thomas@75-186.eduroam.RWTH-Aachen.DE] has quit [Ping timeout: 276 seconds] 12:12:34 BrandLeeJones [~BrandLeeJ@chello062178064156.22.11.vie.surfer.at] has joined #lisp 12:13:36 -!- hargettp_ [~anonymous@96.237.123.41] has quit [Ping timeout: 240 seconds] 12:18:05 are upper-case-p, lower-case-p and both-case-p mutually exclusive? 12:19:30 zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has joined #lisp 12:20:04 ah, forget it. upper and lower must be, "both-case-p" means if the charactar has case, i was assuming by its name that it meant it didn't have 12:20:07 hargettp_ [~anonymous@pool-71-184-190-7.bstnma.east.verizon.net] has joined #lisp 12:20:23 -!- splittist [~John@202-173.203-62.cust.bluewin.ch] has quit [Quit: back soon] 12:21:12 -!- tcr1 [~tcr@cpc1-bour2-0-0-cust414.15-1.cable.virginmedia.com] has quit [Ping timeout: 240 seconds] 12:21:17 -!- heloehlo [~bfouts@66.83.65.206.nw.nuvox.net] has quit [Ping timeout: 260 seconds] 12:23:48 heloehlo [~bfouts@66.83.65.206.nw.nuvox.net] has joined #lisp 12:24:17 as in, "if `chr' has both cases, chr = (char-upcase chr) = (char-downcase chr)" :p but it's "if there are both cases for `chr'" 12:24:37 what a lousy name 12:24:40 HG` [~HG@xdsl-92-252-80-61.dip.osnanet.de] has joined #lisp 12:24:47 -!- zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has quit [Ping timeout: 240 seconds] 12:26:28 tcr1 [~tcr@cpc1-bour2-0-0-cust414.15-1.cable.virginmedia.com] has joined #lisp 12:26:29 EarlGray [~dmytrish@193.239.152.189] has joined #lisp 12:27:59 -!- gravicappa [~gravicapp@ppp91-78-231-28.pppoe.mtu-net.ru] has quit [Ping timeout: 255 seconds] 12:28:41 ok, even so, if (both-case-p chr) is true, one and only one of (upper-case-p chr) (lower-case-p chr) is true; however, can either be true even if (both-case-p chr) is false? 12:32:58 xan_ [~xan@129.131.117.91.dynamic.mundo-r.com] has joined #lisp 12:33:59 dfox [~dfox@ip-94-113-90-33.net.upcbroadband.cz] has joined #lisp 12:34:39 Joreji [~thomas@64-055.eduroam.RWTH-Aachen.DE] has joined #lisp 12:35:21 pmd: i don't think so 12:36:59 statonjr_ [~statonjr@cpe-071-075-085-085.carolina.res.rr.com] has joined #lisp 12:37:47 -!- statonjr_ is now known as statonjr-ios 12:37:53 -!- statonjr-ios [~statonjr@cpe-071-075-085-085.carolina.res.rr.com] has quit [Client Quit] 12:38:12 statonjr-ios [~statonjr@cpe-071-075-085-085.carolina.res.rr.com] has joined #lisp 12:41:36 -!- Jasko [~tjasko@c-174-59-223-208.hsd1.pa.comcast.net] has quit [Ping timeout: 240 seconds] 12:45:57 snearch [~snearch@f053002083.adsl.alicedsl.de] has joined #lisp 12:46:14 Jasko3 [~tjasko@c-174-59-223-208.hsd1.pa.comcast.net] has joined #lisp 12:47:34 -!- kiuma [~kiuma@85-18-55-37.ip.fastwebnet.it] has quit [Quit: Leaving] 12:51:47 chrnybo [~user@148.122.202.244] has joined #lisp 12:53:46 azaq23 [~derivecto@unaffiliated/azaq23] has joined #lisp 12:56:14 egor_tensin [~egor@217.197.5.81] has joined #lisp 12:56:52 -!- carlocci [~nes@93.37.209.132] has quit [Quit: eventually IE will rot and die] 12:57:28 rudi_ [~rudi@1x-193-157-192-186.uio.no] has joined #lisp 12:57:50 BrandLeeJones_ [~BrandLeeJ@chello062178064156.22.11.vie.surfer.at] has joined #lisp 12:58:26 -!- egor_tensin [~egor@217.197.5.81] has quit [Client Quit] 12:59:13 -!- BrandLeeJones_ [~BrandLeeJ@chello062178064156.22.11.vie.surfer.at] has quit [Client Quit] 13:00:24 -!- astoon [~astoon@178.130.1.36] has quit [Ping timeout: 240 seconds] 13:04:05 -!- hargettp_ [~anonymous@pool-71-184-190-7.bstnma.east.verizon.net] has quit [Quit: hargettp_] 13:04:29 hargettp_ [~anonymous@pool-71-184-190-7.bstnma.east.verizon.net] has joined #lisp 13:08:48 -!- lorenz [~moesenle@atradig141.informatik.tu-muenchen.de] has quit [Remote host closed the connection] 13:09:41 -!- hargettp_ [~anonymous@pool-71-184-190-7.bstnma.east.verizon.net] has quit [Quit: hargettp_] 13:10:18 stassats [~stassats@wikipedia/stassats] has joined #lisp 13:10:30 -!- statonjr-ios [~statonjr@cpe-071-075-085-085.carolina.res.rr.com] has quit [Quit: Colloquy for iPhone - http://colloquy.mobi] 13:12:39 Edward__ [ed@AAubervilliers-154-1-64-219.w90-3.abo.wanadoo.fr] has joined #lisp 13:13:22 kiuma [~kiuma@85-18-55-37.ip.fastwebnet.it] has joined #lisp 13:14:02 hi kiuma 13:14:37 astoon [~astoon@178.130.1.36] has joined #lisp 13:15:15 -!- tfb [~tfb@92.40.191.130.sub.mbb.three.co.uk] has quit [Quit: gone] 13:15:21 Xach [~xach@pdpc/supporter/professional/xach] has joined #lisp 13:15:52 urandom__ [~user@p548A2CFE.dip.t-dialin.net] has joined #lisp 13:15:52 tfb [~tfb@92.40.191.130.sub.mbb.three.co.uk] has joined #lisp 13:16:47 hello fe[nl]ix 13:17:28 I'm still waiting a reply from the customer. 13:20:00 -!- Edward__ [ed@AAubervilliers-154-1-64-219.w90-3.abo.wanadoo.fr] has quit [Ping timeout: 240 seconds] 13:20:45 gigamonkey [~user@adsl-99-179-45-198.dsl.pltn13.sbcglobal.net] has joined #lisp 13:22:24 -!- sellout [~greg@c-24-61-13-161.hsd1.ma.comcast.net] has quit [Ping timeout: 240 seconds] 13:22:43 MrElendig [~oh@pdpc/supporter/active/mrelendig] has joined #lisp 13:24:24 -!- Adlai_ [~leif@ool-18bfe51c.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 13:25:28 Edward__ [~ed@AAubervilliers-154-1-32-249.w90-3.abo.wanadoo.fr] has joined #lisp 13:27:07 -!- rvncerr [~rvncerr@rvncerr.org] has quit [Read error: Connection reset by peer] 13:31:37 rvncerr [~rvncerr@rvncerr.org] has joined #lisp 13:32:48 -!- xan_ [~xan@129.131.117.91.dynamic.mundo-r.com] has quit [Ping timeout: 240 seconds] 13:33:03 BrandLeeJones_ [~BrandLeeJ@chello062178064156.22.11.vie.surfer.at] has joined #lisp 13:33:55 xan_ [~xan@129.131.117.91.dynamic.mundo-r.com] has joined #lisp 13:36:32 -!- HG` [~HG@xdsl-92-252-80-61.dip.osnanet.de] has quit [Ping timeout: 260 seconds] 13:37:11 "FORMAT rhymes with FORTRAN, sort of..." 13:37:13 -!- sea4ever [~sea@unaffiliated/sea4ever] has quit [Ping timeout: 272 seconds] 13:42:22 HG` [~HG@85.8.73.116] has joined #lisp 13:43:47 -!- Beetny [~Beetny@ppp118-208-143-239.lns20.bne1.internode.on.net] has quit [Ping timeout: 240 seconds] 13:44:06 ikki [~ikki@200.95.162.194] has joined #lisp 13:44:46 -!- BrandLeeJones_ [~BrandLeeJ@chello062178064156.22.11.vie.surfer.at] has quit [Quit: BrandLeeJones_] 13:46:00 pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has joined #lisp 13:47:06 Harag [~Harag@wbs-41-208-211-15.wbs.co.za] has joined #lisp 13:47:32 -!- kiuma [~kiuma@85-18-55-37.ip.fastwebnet.it] has quit [Quit: Leaving] 13:49:34 homie [~levgue@xdsl-78-35-132-214.netcologne.de] has joined #lisp 13:49:47 rpg [~rpg@216.243.156.16.real-time.com] has joined #lisp 13:51:32 -!- Harag [~Harag@wbs-41-208-211-15.wbs.co.za] has quit [Ping timeout: 240 seconds] 13:51:50 kiuma [~kiuma@85-18-55-37.ip.fastwebnet.it] has joined #lisp 13:52:40 Athas [~athas@82.211.209.226] has joined #lisp 13:55:15 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Read error: Connection reset by peer] 13:55:51 araujo [~araujo@gentoo/developer/araujo] has joined #lisp 13:57:15 bubo [~bubo@178-191-208-159.adsl.highway.telekom.at] has joined #lisp 14:00:38 -!- DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has quit [Quit: DarthShrine] 14:01:32 darrh00 [~darren@117.79.232.219] has joined #lisp 14:06:04 -!- homie is now known as Guest56717 14:07:12 -!- Guest56717 is now known as homie` 14:08:17 -!- kiuma [~kiuma@85-18-55-37.ip.fastwebnet.it] has quit [Quit: Leaving] 14:08:51 -!- homie` is now known as homie 14:10:09 -!- bubo [~bubo@178-191-208-159.adsl.highway.telekom.at] has left #lisp 14:12:04 sellout [~greg@gw3.tacwap.org] has joined #lisp 14:13:03 is anyone on channel ##c from here ? 14:16:53 -!- pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has quit [Ping timeout: 265 seconds] 14:20:04 homie, do you have a C-language question? Or do I misunderstand you? 14:21:52 -!- mcsontos [~mcsontos@nat/redhat/x-looeunbhmrdqycna] has quit [Quit: Leaving] 14:22:02 he needs an unbanning. perhaps Zhivago can help. (or use all his might to destroy him. who knows! :) ) 14:23:07 Zhivago is active on ##c ? 14:23:16 it's two weeks now i can't join... i don't get it, i didn't do anything other than rejoin once too often, due to my emacs settings... 14:24:49 c is worse than lisp anyway, so not a big deal 14:24:52 Krystof [~csr21@csrhodes.plus.com] has joined #lisp 14:25:12 wieso worser? 14:25:28 -!- EarlGray [~dmytrish@193.239.152.189] has quit [Read error: No route to host] 14:26:29 EarlGray [~dmytrish@193.239.152.189] has joined #lisp 14:29:07 -!- ikki [~ikki@200.95.162.194] has quit [Ping timeout: 240 seconds] 14:29:27 -!- krl [~krl@rymdkoloni.se] has quit [Remote host closed the connection] 14:29:39 krl [~krl@rymdkoloni.se] has joined #lisp 14:29:40 -!- valium97582 [~daniel@189-47-113-196.dsl.telesp.net.br] has quit [Quit: leaving] 14:31:31 -!- Dranik [~dim@86.57.253.61] has quit [Quit:     (xchat 2.4.5  )] 14:32:50 wow interesting human interest note on Gödel on wikipedia 14:38:16 dto1 [~dto@pool-96-252-62-25.bstnma.fios.verizon.net] has joined #lisp 14:39:44 I am feeling the urge to write implement CL in JavaScript. Should I sit down and wait until it passes, or should I throw everything to the wind and do it? 14:40:07 koning_r1bot: Do it! I've always wanted a concatenated stream in javascript! 14:40:26 depends on whether you have anything else worthwhile to do 14:40:48 -!- tcr1 [~tcr@cpc1-bour2-0-0-cust414.15-1.cable.virginmedia.com] has quit [Ping timeout: 240 seconds] 14:41:03 -!- heloehlo [~bfouts@66.83.65.206.nw.nuvox.net] has left #lisp 14:41:27 rmarianski [~rmariansk@mail.marianski.com] has joined #lisp 14:41:55 tcr1 [~tcr@cpc1-bour2-0-0-cust414.15-1.cable.virginmedia.com] has joined #lisp 14:42:40 stassats: well, I'm trying to write something complex in javascript, but I keep running into annoying language limitations and features 14:43:06 to the point that I am using code strings for abstraction now 14:43:10 *Xach* waits for the punchline 14:43:18 you should strive to write something complex in Common Lisp 14:43:54 yes, but there is no CL in web browsers 14:44:13 there is in Closure 14:44:57 there's also native client. 14:45:09 oh, that's awesome 14:46:18 -!- flip214 [~marek@unaffiliated/flip214] has quit [Remote host closed the connection] 14:46:20 that looks a lot more realistic 14:46:44 koning_r1bot: I'm curious, what limitation did you hope to avoid by first writing an implementation of Common Lisp in JavaScript? 14:47:43 -!- EarlGray [~dmytrish@193.239.152.189] has quit [Remote host closed the connection] 14:48:17 CL Test 14:48:23 EarlGray [~dmytrish@193.239.152.189] has joined #lisp 14:50:17 (defun () 'oops?) 14:50:22 Kanon [~opera@LLagny-156-34-16-32.w80-14.abo.wanadoo.fr] has joined #lisp 14:50:24 :D 14:50:50 Wait, HTML5 isn't XML so there's no CDATA block there, right? 14:51:00 So how does it even check when it ends? It just parses until ? 14:51:19 So you need to split up all occurences of in your strings in the Lisp source code? 14:51:24 Xach: many things that are not technically limitations, but practical ones (for instance, I could do named arguments in JS, but it would be unsightly and slow) 14:51:36 -!- dto1 [~dto@pool-96-252-62-25.bstnma.fios.verizon.net] has quit [Ping timeout: 240 seconds] 14:51:51 kuffaar: 14:52:09 Yeah that's probably better 14:52:56 one thing that drives me up a wall about js is that arrays' subscripting syntax can't be overridden, so you can't create displaced arrays or array views; you always have to copy shit 14:53:37 another thing is that strings can't span multiple lines (unless you escape them); so you can't really do much in the way of metaprogramming with code strings either 14:54:15 koning_r1bot how does this work then anyways? Do you have to evaluate everything as a string? 14:54:25 evaluateCLCode(blah); 14:55:20 kuffaar: well, that's a trivial detail.. anything would work, really. maybe CL.eval(CL.read(foo)) or something 14:55:25 BrandLeeJones_ [~BrandLeeJ@chello062178064156.22.11.vie.surfer.at] has joined #lisp 14:55:36 -!- _danb_ [~user@124-149-166-62.dyn.iinet.net.au] has quit [Ping timeout: 240 seconds] 14:56:08 koning_r1bot: named arguments are very sightly in javascript: use an object. 14:57:03 pkhuong: the calls would be sightly, but handling them in the callee wouldn't 14:57:12 -!- echo-area [~user@114.251.86.0] has quit [Remote host closed the connection] 14:57:27 -!- sm` [~s@78.157.15.219] has quit [Ping timeout: 240 seconds] 14:57:51 I know conkeror (the web browser) has hacked named arguments into JS, I shuold look into that 15:01:58 sm` [s@78.157.15.219] has joined #lisp 15:02:02 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #lisp 15:04:10 -!- Kanon [~opera@LLagny-156-34-16-32.w80-14.abo.wanadoo.fr] has left #lisp 15:05:59 -!- rudi_ [~rudi@1x-193-157-192-186.uio.no] has quit [Quit: Client exciting.] 15:09:01 -!- az [~az@p4FE4F54D.dip.t-dialin.net] has quit [Quit: WeeChat 0.3.3] 15:09:37 az [~az@p4FE4F54D.dip.t-dialin.net] has joined #lisp 15:09:45 hargettp_ [~anonymous@pool-71-184-190-7.bstnma.east.verizon.net] has joined #lisp 15:10:17 -!- pankajm [~pankajm@202.3.77.219] has quit [Quit: Lost terminal] 15:11:24 ikki [~ikki@201.122.132.181] has joined #lisp 15:11:43 -!- BrandLeeJones_ [~BrandLeeJ@chello062178064156.22.11.vie.surfer.at] has quit [Quit: BrandLeeJones_] 15:17:02 sonnym [~evissecer@singlebrookvpn.lightlink.com] has joined #lisp 15:18:19 -!- jobf [~jfranck@c-9fbde555.03-87-73746f38.cust.bredbandsbolaget.se] has quit [Quit: leaving] 15:19:22 milanj [~milanj_@109-93-201-127.dynamic.isp.telekom.rs] has joined #lisp 15:20:37 mega1 [~quassel@catv4E5CABA2.pool.t-online.hu] has joined #lisp 15:21:19 -!- hargettp_ [~anonymous@pool-71-184-190-7.bstnma.east.verizon.net] has quit [Quit: hargettp_] 15:27:04 -!- xan_ [~xan@129.131.117.91.dynamic.mundo-r.com] has quit [Ping timeout: 255 seconds] 15:28:26 kushal [~kdas@114.143.161.187] has joined #lisp 15:28:31 -!- kushal [~kdas@114.143.161.187] has quit [Changing host] 15:28:31 kushal [~kdas@fedora/kushal] has joined #lisp 15:29:43 -!- sharps [~hazel@ip-118-90-50-156.xdsl.xnet.co.nz] has left #lisp 15:29:45 -!- Hun [~Hun@host-80-81-19-29.customer.m-online.net] has quit [Remote host closed the connection] 15:31:28 Adlai_ [~leif@ool-18b966a4.dyn.optonline.net] has joined #lisp 15:31:43 dlowe [~dlowe@ita4fw1.itasoftware.com] has joined #lisp 15:32:08 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 260 seconds] 15:36:24 valium97582 [~daniel@189-47-113-196.dsl.telesp.net.br] has joined #lisp 15:36:37 -!- sm` [s@78.157.15.219] has quit [Ping timeout: 240 seconds] 15:36:53 GeneralMaximus [~general@122.163.246.88] has joined #lisp 15:37:29 hello 15:38:34 sm` [s@78.157.15.219] has joined #lisp 15:38:56 -!- astoon [~astoon@178.130.1.36] has quit [Quit: Leaving] 15:39:42 LiamH [~none@pdp8.nrl.navy.mil] has joined #lisp 15:40:22 does COM rely on C++? i mean, isn't it just about vtables? i used to think that in order for CFFI to support COM it would have to support C++, but i've seen C stucts and stub functions that handle COM interface vtables, which means it doesn't depend on eg. exception handling and whatever comes with C++ 15:42:41 -!- freiksenet [~freiksene@cs181130165.pp.htv.fi] has quit [Ping timeout: 240 seconds] 15:43:13 -!- sm` [s@78.157.15.219] has quit [Ping timeout: 276 seconds] 15:43:25 pmd: i'm not sure i can help, since i only know lisp, sorry. 15:44:34 -!- jdz [~jdz@193.206.22.97] has quit [Ping timeout: 255 seconds] 15:46:17 rme [~rme@pool-70-106-129-201.chi01.dsl-w.verizon.net] has joined #lisp 15:46:50 pmd: Afaik it's non trivial to deal with but it can be done 15:47:09 I've seen some Win32 assembly which operated on COM and DirectX stuff 15:47:12 i'm currently messing with COM in acl and it came to memory that someone was adding C++ support to CFFI, and i was here (#lisp) saying "cool, the next step is COM", but (i think that) COM is possible with CFFI as it is, where each interface is a structure 15:47:15 It was extremeley complicated 15:47:21 -e 15:48:40 -!- citizen428 [~citizen42@chello213047077012.23.11.vie.surfer.at] has quit [Remote host closed the connection] 15:48:45 -!- aerique [euqirea@xs3.xs4all.nl] has quit [Quit: ...] 15:49:04 kuffaar: well, that's asm. using a CL FFI is at least an order of magnitude better than ASM 15:49:21 -!- Joreji [~thomas@64-055.eduroam.RWTH-Aachen.DE] has quit [Ping timeout: 240 seconds] 15:49:21 pmd: Uh well it was something like 30-40 lines per call or something haha 15:49:26 kuffaar: thing is, if CFFI can describe structures and function calls, it can do COM 15:49:34 Sure 15:49:54 Joreji [~thomas@64-055.eduroam.RWTH-Aachen.DE] has joined #lisp 15:50:08 Although it might have to deal with extremely nasty names which are not even legal in C so you need to use GetProcAddress and such 15:50:22 Or GetProcAddr or whatever it's called 15:51:05 _____stdcl@::AAAAAWED34::i::i::(4@SDFUIWEF@DirectX@DirectXMethods@DirectX@Win32@OWEIFIWEF::i4)@_____AD___ 15:51:06 kuffaar: that's the thing, COM interfaces are defined by the order in which the methods are declared, not by their names (unless it's a dispatch interface, but that's a mechanism doesn't use getprocaddress) 15:51:11 Your typical C++ name ^ 15:51:13 sm` [s@78.157.15.219] has joined #lisp 15:51:28 oh and that's just the prefix 15:51:55 pmd: COM is more of an ABI 15:51:57 pmd I have no idea how COM works tbh 15:52:41 adeht: if you consider vtable indirection part of the ABI, yes 15:53:21 pmd: yep. check out the "Inside COM" book 15:53:35 adeht: however, it's one which overhead above direct CFFI is minimal 15:53:55 francogrex [c14be4fc@gateway/web/freenode/ip.193.75.228.252] has joined #lisp 15:56:25 i'm excited because it can open a wide world to every win32 implementation, like instancing office components or providing a scripting engine 15:56:36 s/win32/cl win32/ 15:57:37 outside work I've not used Windows for years.. so.. 16:01:25 pmd waht is it? 16:02:48 -!- sm` [s@78.157.15.219] has quit [Ping timeout: 240 seconds] 16:02:54 pls see this bit of code. looks like I am doing too many steps that could be grouped into just one single step. http://paste.lisp.org/display/118626 16:03:51 sluggo [~chris@net-216-37-86-189.in-addr.worldspice.net] has joined #lisp 16:03:52 francogrex: (read-line stream nil) is the same as (read-line stream nil nil nil). use the shorter form. 16:03:58 -!- dRbiG [p@irc.kaer.tk] has quit [Quit: maintenance break] 16:04:13 ok 16:05:02 corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has joined #lisp 16:05:06 sm` [~s@78.157.15.219] has joined #lisp 16:07:02 -!- RaceCondition [~RaceCondi@82.131.61.203.cable.starman.ee] has quit [Quit: Computer has gone to sleep] 16:07:30 francogrex: Your comment says "maximum" but the function you use is "min". Why the difference? 16:08:33 oops, just a mistake replace min by max 16:10:36 automata [~vilson@187.59.62.186] has joined #lisp 16:11:20 iwillig [~iwillig@dyn-128-59-150-188.dyn.columbia.edu] has joined #lisp 16:12:12 francogrex: instead of collecting in a list, you could simply only save the current date if it's bigger than the previously saved date. 16:13:25 e.g. (setf (gethash id table) (max new-date (gethash id table 0))) 16:13:39 then alexandria:hash-table-values and bob is your uncle. 16:14:55 srolls [~user@c-76-126-212-192.hsd1.ca.comcast.net] has joined #lisp 16:16:30 ah yes.. so it's possible to setf the values using conditions at the same time as populating the table: so this then is superfluous: (loop for i in *data* do (setf (gethash (nth 0 i) *table*) (make-list 1 :initial-element nil))) ... 16:18:00 -!- attila_lendvai [~attila_le@catv-89-133-171-67.catv.broadband.hu] has quit [Quit: Leaving.] 16:21:41 morphling [~stefan@gssn-5f754c71.pool.mediaWays.net] has joined #lisp 16:21:59 _ism [~frinnn@i59F60855.versanet.de] has joined #lisp 16:22:15 stassats [~stassats@wikipedia/stassats] has joined #lisp 16:23:14 alexandria also has maxf, so you can use (maxf (gethash id table) new-date) 16:23:38 + 0 as default if that's needed 16:23:51 excellent 16:24:41 -!- biTT [~frinnn@i59F60855.versanet.de] has quit [Ping timeout: 240 seconds] 16:24:41 how can i create a standalone binary of my sbcl program? 16:24:53 sb-ext:save-lisp-and-die 16:25:01 thank you 16:25:22 _s1gma [~herpderp@77.107.164.131] has joined #lisp 16:27:07 hmm... still having some problems.. 16:27:34 this is my program: (defvar bar 0) (format t "test: ~a" bar) 16:27:38 saved as "01.lisp" 16:27:44 in sbcl i type: (load "01") 16:27:54 then: (sb-ext:save-lisp-and-die "01") 16:28:04 that created a 51 MB file! 16:28:12 here we go again 16:28:16 pattern: Your problem is that you don't understand what you are doing. 16:28:19 i "chmod 700 01" 16:28:23 but it won't run 16:28:28 pattern: your program has included a compiler :) 16:28:30 before anyone even suggests this, I am not pattern! 16:28:44 Xach: it's true.. that's why i'm asking for help here 16:28:58 pattern: You can have your hand held by using http://xach.com/buildapp/ for sbcl, but it's no substitute for understanding and competence. 16:29:07 -!- milanj [~milanj_@109-93-201-127.dynamic.isp.telekom.rs] has quit [Ping timeout: 255 seconds] 16:29:17 Xach: 404 16:29:24 pattern: I wouldn't worry about it until you have to distribute something in binary format 16:29:35 I thought CL hackers usually just run that stuff straight in sbcl 16:29:38 sorry, http://xach.com/lisp/buildapp/ is the right link. 16:29:41 ypage not active :( 16:29:46 In combination with emacs/slime 16:29:48 -!- Edward__ [~ed@AAubervilliers-154-1-32-249.w90-3.abo.wanadoo.fr] has quit [] 16:29:54 Instead of dumping Lisp images 16:30:08 kuffaar: That is how I usually use CL. Sometimes I want to run a Lisp program from cron, so I make an executable. 16:30:34 Xach although you could just sbcl with the right arguments for that, no? 16:30:42 Xach: thanks for the link to buildapp 16:30:46 *just use 16:31:15 kuffaar: SBCL is slow and verbose when loading things. I don't like that very much. 16:33:35 rien__ [~rien_@rrcs-69-193-217-130.nyc.biz.rr.com] has joined #lisp 16:36:48 -!- rien_ [~rien_@static-71-249-187-201.nycmny.east.verizon.net] has quit [Ping timeout: 246 seconds] 16:39:43 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Quit: rpg] 16:42:09 -!- francogrex [c14be4fc@gateway/web/freenode/ip.193.75.228.252] has left #lisp 16:42:13 milanj [~milanj_@79-101-138-18.dynamic.isp.telekom.rs] has joined #lisp 16:42:19 francogrex [c14be4fc@gateway/web/freenode/ip.193.75.228.252] has joined #lisp 16:43:33 -!- Ralith [~ralith@S010600221561996a.vc.shawcable.net] has quit [Quit: Lost terminal] 16:43:53 -!- ch077179 [~urs@adsl-89-217-141-230.adslplus.ch] has quit [Remote host closed the connection] 16:45:04 Ralith [~ralith@S010600221561996a.vc.shawcable.net] has joined #lisp 16:45:35 ch077179 [~urs@adsl-89-217-141-230.adslplus.ch] has joined #lisp 16:46:21 -!- ch077179 [~urs@adsl-89-217-141-230.adslplus.ch] has quit [Max SendQ exceeded] 16:46:45 ch077179 [~urs@adsl-89-217-141-230.adslplus.ch] has joined #lisp 16:48:40 -!- automata [~vilson@187.59.62.186] has quit [Quit: Saindo] 16:49:19 quicklisp has a nice muffler 16:50:22 yeah you can do mob hits with it... 16:51:51 js0000 [~js@67.208.188.68] has joined #lisp 16:54:35 So I was looking at quicklisp last weekend, for the first time really. 16:55:05 It looks really awesome. One thing I couldn't tell, though, was if there's a way to have it use an internal repository 16:56:55 foom: quicklisp is based on ASDF. So you can install your own systems in your own repository, and register it in asdf:*central-registry*, then use quicklisp to load thm. 16:58:43 superflit [~superflit@140.226.49.148] has joined #lisp 16:59:38 -!- sm` [~s@78.157.15.219] has quit [Ping timeout: 260 seconds] 17:00:40 tmh [6c491a1c@pdpc/supporter/sustaining/tmh] has joined #lisp 17:01:04 Greetings lispers! 17:01:57 -!- lnostdal [~Lars@218.80-202-49.nextgentel.com] has quit [Quit: Leaving] 17:02:12 -!- francogrex [c14be4fc@gateway/web/freenode/ip.193.75.228.252] has left #lisp 17:03:17 murilasso [~murilasso@64.119.157.61] has joined #lisp 17:03:32 gko [gko@122-116-15-138.HINET-IP.hinet.net] has joined #lisp 17:04:30 parkq [~parkq@209-6-20-163.c3-0.wrx-ubr3.sbo-wrx.ma.cable.rcn.com] has joined #lisp 17:04:34 I can't find anything in the clhs about what happens if the :include in defstructs shadows some slot 17:04:35 JuanDaugherty: what are you refereting to? (I learned that Gödel found an inconsistency in USA consititution that will lead it to dictatorship). 17:04:57 is that dependent on the implementation, or completely moot a point 17:05:15 yvdriess, his death from starvation due to his wife going into hospital 17:05:26 yvdriess: notice that accessors are functions, and named usually with a conc-name. 17:05:39 jewel [~jewel@196-215-117-47.dynamic.isadsl.co.za] has joined #lisp 17:06:10 JuanDaugherty: ok. 17:06:12 pjb, yes but I get a duplicate slot error 17:07:01 (it's on the front page) 17:08:09 lnostdal [~Lars@218.80-202-49.nextgentel.com] has joined #lisp 17:08:35 rpg [~rpg@mpls.sift.info] has joined #lisp 17:09:08 yvdriess: seems conforming. including is like defining the slots of the included structure in the new one. You cannot have two slots named the same. 17:09:37 yvdriess: notice however that you can redefine the type and initform of an included slot (to be a subtype of the original type). 17:10:51 thanks 17:11:09 -!- yvdriess [~Beef@soft85.vub.ac.be] has quit [Quit: Leaving] 17:13:55 xraycat [~Miranda@brln-4d0c8fd7.pool.mediaWays.net] has joined #lisp 17:14:31 -!- krl [~krl@rymdkoloni.se] has quit [Remote host closed the connection] 17:14:50 krl [~krl@rymdkoloni.se] has joined #lisp 17:15:05 -!- tfb [~tfb@92.40.191.130.sub.mbb.three.co.uk] has quit [Ping timeout: 272 seconds] 17:15:22 -!- mvilleneuve [~mvilleneu@LLagny-156-36-4-214.w80-14.abo.wanadoo.fr] has quit [Quit: Lost terminal] 17:15:54 -!- krl [~krl@rymdkoloni.se] has quit [Remote host closed the connection] 17:16:11 krl [~krl@rymdkoloni.se] has joined #lisp 17:17:11 -!- darrh00 [~darren@117.79.232.219] has left #lisp 17:22:48 -!- jewel [~jewel@196-215-117-47.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 17:24:10 tfb [~tfb@92.41.106.217.sub.mbb.three.co.uk] has joined #lisp 17:25:46 -!- sysfault [~exalted@p3m/member/sysfault] has quit [Remote host closed the connection] 17:26:10 Jeopardy: This function is to let what labels is to let*. 17:26:34 That's an imperfect analogy. 17:26:50 -!- pdo [~pdo@217.33.254.141] has left #lisp 17:27:13 the visibility in LABELS goes both ways. in LET* only earlier bindings are visible to later bindings. 17:27:36 -!- bobbysmith007 [~russ@216.155.97.1] has quit [Ping timeout: 240 seconds] 17:27:51 Bonus points for Xach. 17:27:59 I still want to know what the answer is, though. :) 17:28:13 could always write flet* ;) 17:28:23 flet! 17:28:29 Of course. >_< 17:36:59 -!- rien__ is now known as rien_ 17:37:10 -!- EarlGray [~dmytrish@193.239.152.189] has quit [Remote host closed the connection] 17:38:55 -!- e-user [~akahl@nat/nokia/x-mfnighuonxxreewi] has quit [Quit: Leaving.] 17:39:27 -!- gigamonkey [~user@adsl-99-179-45-198.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 240 seconds] 17:39:36 -!- Adlai_ [~leif@ool-18b966a4.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 17:39:52 gigamonkey [~user@adsl-99-179-45-198.dsl.pltn13.sbcglobal.net] has joined #lisp 17:40:33 srcerer [~chatzilla@dns2.klsairexpress.com] has joined #lisp 17:40:54 -!- pmd [~user@2001:690:2100:4:200:1aff:fe19:ddfc] has quit [] 17:43:18 -!- srcerer [~chatzilla@dns2.klsairexpress.com] has quit [Read error: Connection reset by peer] 17:44:26 srcerer [~chatzilla@dns2.klsairexpress.com] has joined #lisp 17:45:37 -!- gko [gko@122-116-15-138.HINET-IP.hinet.net] has quit [Ping timeout: 260 seconds] 17:46:23 -!- lemoinem [~swoog@216.252.80.168] has quit [Remote host closed the connection] 17:46:49 lemoinem [~swoog@216.252.77.250] has joined #lisp 17:47:48 -!- murilasso [~murilasso@64.119.157.61] has quit [Quit: Changing server] 17:50:10 -!- varjag [~eugene@122.62-97-226.bkkb.no] has quit [Remote host closed the connection] 17:50:36 rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has joined #lisp 17:51:43 k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #lisp 17:52:26 Adlai_ [~leif@ool-18b966a4.dyn.optonline.net] has joined #lisp 17:57:33 splittist [~IceChat77@30-245.62-188.cust.bluewin.ch] has joined #lisp 18:01:38 -!- schoppenhauer [~christoph@unaffiliated/schoppenhauer] has quit [Quit: leaving] 18:02:48 EarlGray [~dmytrish@193.239.152.189] has joined #lisp 18:02:57 timepilot [~timepilot@66.71.230.253] has joined #lisp 18:08:17 -!- kushal [~kdas@fedora/kushal] has quit [Ping timeout: 272 seconds] 18:10:25 stupid question: i am writing my first macro and want to evaluate a list of args once. (let ((args (mapcar #'eval args)) seems wrong. whats the way to do that? 18:10:29 -!- BrandLeeJones [~BrandLeeJ@chello062178064156.22.11.vie.surfer.at] has quit [Quit: BrandLeeJones] 18:10:57 -!- jsoft [~jsoft@unaffiliated/jsoft] has quit [Ping timeout: 246 seconds] 18:11:25 churib: I think you're thinking of macros wrong. 18:11:59 sykopomp: possible :) 18:12:00 churib: a macro takes source code as its argument(s) and returns source code as its result. 18:12:15 churib: the values that incoming source code might have at runtime is generally not the macro's concern. 18:12:27 -!- gigamonkey [~user@adsl-99-179-45-198.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 240 seconds] 18:12:30 -!- milanj [~milanj_@79-101-138-18.dynamic.isp.telekom.rs] has quit [Ping timeout: 250 seconds] 18:13:20 -!- Ginei_Morioka [~irssi_log@78.112.65.246] has quit [Read error: Connection reset by peer] 18:14:52 sm` [s@77.29.101.107] has joined #lisp 18:14:52 somewhere i read an example like (defmacro square (x) `(* ,x ,x)) - here the argument x is evaluated twice which is sometimes not the desired behavior... 18:15:11 there's a helper for that. 18:15:39 (ql:quickload "alexandria") 18:15:51 alexandria has once-only? 18:15:56 i will have a look, thanks 18:16:14 (defmacro square (x) (alexandria:once-only (x) `(* ,x ,x))) 18:16:22 yay 18:17:14 Ginei_Morioka [~irssi_log@78.114.153.114] has joined #lisp 18:17:36 milanj [~milanj_@79-101-139-86.dynamic.isp.telekom.rs] has joined #lisp 18:17:45 istr the implementation of once-only itself is pretty mind-bending 18:17:55 -!- trebor_dki [~user@mail.dki.tu-darmstadt.de] has quit [Ping timeout: 276 seconds] 18:18:19 churib: http://www.gigamonkeys.com/book/macros-defining-your-own.html Have you looked at this? 18:19:12 yes, there is also an implementation of once-only, but its too hard for me to understand. 18:20:09 perhaps i have to stare at it for an hour or two :) 18:21:36 RaceCondition [~RaceCondi@82.131.61.203.cable.starman.ee] has joined #lisp 18:21:48 billitch [~billitch@host-78-129-3-155.brutele.be] has joined #lisp 18:22:52 You can just use it for now, until you've gotten used to picking apart nested backquotes, too ;) 18:25:25 alexandria seem usefull for other things too, thanks for pointing me to that! 18:26:02 -!- HG` [~HG@85.8.73.116] has quit [Quit: Leaving.] 18:26:41 And don't forget LOL's defmacro! (defmacro! square (o!x) `(* ,g!x ,g!x)) (: 18:27:16 churib: alexandria is fantastic! 18:27:43 bsod1 [~osa1@188.58.216.31] has joined #lisp 18:28:54 quek [~ancient@router1.gpy1.ms246.net] has joined #lisp 18:29:39 yeah, i have LOL lying around here, but before that i work through on lisp 18:30:04 CyberDomovoy [~cd@AToulouse-257-1-98-20.w82-125.abo.wanadoo.fr] has joined #lisp 18:31:11 balooga [~00u4440@147.21.8.1] has joined #lisp 18:31:32 hi there 18:32:59 bobbysmith0071 [~russ@216.155.97.1] has joined #lisp 18:33:14 -!- bobbysmith0071 is now known as bobbysmith007 18:33:44 when doing this: http://pastebin.com/dkEcvvNf customize tells me the value is 'nil and that (of course) it mismatch the declaration, any idea why? 18:34:08 CyberDomovoy: #emacs 18:34:11 CyberDomovoy: sorry, this is a common lisp channel. for help with emacs lisp, try #emacs. 18:34:57 i tried in #emacs, but i get no reaction, i thought a lot of you actally know emacs too 18:35:05 HG` [~HG@85.8.73.116] has joined #lisp 18:35:12 CyberDomovoy: that is truly a shame, this is still not a good place. 18:35:20 ok 18:38:18 -!- rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has quit [Remote host closed the connection] 18:38:21 -!- HG` [~HG@85.8.73.116] has quit [Client Quit] 18:46:58 -!- morphling [~stefan@gssn-5f754c71.pool.mediaWays.net] has quit [Remote host closed the connection] 18:49:07 -!- azaq23 [~derivecto@unaffiliated/azaq23] has quit [Quit: Leaving.] 18:49:19 freiksenet [~freiksene@cs181130165.pp.htv.fi] has joined #lisp 18:49:56 -!- ZabaQ [~john.conn@playboxgames.com] has left #lisp 18:50:10 *stassats* expresses his dissatisfaction that he can't fully use destructuring lambda-lists in loop destracturing clauses 18:51:42 stassats: you can always write (loop for things ... do (destructuring-bind ... things ...)) 18:52:06 or even: (loop for things ... do ((lambda (...) ...) things)) 18:52:16 oof 18:52:20 + apply 18:52:21 carlocci [~nes@93.37.178.69] has joined #lisp 18:53:10 murilasso [~murilasso@64.119.157.61] has joined #lisp 18:54:16 i wanted to use &whole, but i can use (loop for whole in lists for (foo . bar) = whole ...) 18:54:22 Is there a way to tell FORMAT that the stream is at the beginning of line, without it emitting characters? 18:54:28 stassats: :-) 18:54:45 deepfire: use ~% instead of ~& 18:55:06 pjb, won't it emit a newline? 18:55:11 Yes. 18:55:23 But don't want to.. 18:55:28 *I don't 18:55:54 deepfire: perhaps using (format nil ...)? 18:56:12 -!- timepilot [~timepilot@66.71.230.253] has quit [Quit: timepilot] 18:56:47 I'm playing dirty tricks with emitting #\Return, which is why I need it. 18:57:06 you can use the pprinter and set the prefix 18:57:28 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Ping timeout: 260 seconds] 18:57:41 -!- slyrus_ [~chatzilla@adsl-75-36-217-249.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 272 seconds] 18:58:02 adeht, won't that force me to abandon used of #\Return? 18:58:08 *use 18:58:08 pdo [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has joined #lisp 18:59:28 I emit #\Return because I want interactive status updates, without screen scrolling. 19:00:04 hmm.. maybe I misunderstood. you want to move to the beginning of the line w/o a newline, and the stream to "know" that it's at the beginning of the line? 19:00:13 deepfire: for other reasons, I often just build my output in strings buffer, and then just princ it. 19:00:24 adeht, yes 19:01:50 pjb, hmm, on a second thought this might work.. 19:03:38 pjb, it worked indeed, thanks a lot! 19:13:48 -!- quek [~ancient@router1.gpy1.ms246.net] has quit [Quit: Riece/7.0.2 Emacs/23.2 (gnu/linux)] 19:14:00 -!- pdo [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has quit [Quit: pdo] 19:14:18 antoszka [~antoszka@unaffiliated/antoszka] has joined #lisp 19:16:47 BrandLeeJones [~BrandLeeJ@84.114.246.246] has joined #lisp 19:17:34 Is there any project to minimize the size of a common lisp core, by removing unreferenced functions / classes / packages ... Is that even possible? Each of my website cores are something like 160 megs once everything is built and loaded and I was wondering if there was a (easy) way to reduce the space? SBCL is my runtime if that is pertinent 19:18:03 they're called treeshakers 19:18:15 bobbysmith007: I'm not aware of any active work on that concept for SBCL. 19:18:33 bobbysmith007: I get around the issue by not caring, but that's not an option for everyone. 19:18:33 xan_ [~xan@129.131.117.91.dynamic.mundo-r.com] has joined #lisp 19:19:05 dRbiG [p@irc.kaer.tk] has joined #lisp 19:20:29 Xach: yeah Ive been on the not caring route for a few years but thought I would check if there had been any work on that... It would be nice to reduce resources, but it isnt necessary 19:21:02 people who possess the knowledge of how to make a treeshaker for sbcl don't bother, people who care about treeshaker don't bother obtaining the necessary knowledge 19:21:42 another way is the latter pay the former 19:22:26 -!- EarlGray [~dmytrish@193.239.152.189] has quit [Remote host closed the connection] 19:22:32 thanks for the info 19:22:35 Oroctaiu [opera@201.164.230.197] has joined #lisp 19:22:45 e.g. http://sb-studio.net/ 19:23:06 Hexstream [~hexstream@modemcable075.97-200-24.mc.videotron.ca] has joined #lisp 19:23:20 -!- Oroctaiu is now known as Akteivias 19:24:45 -!- Akteivias [opera@201.164.230.197] has left #lisp 19:27:21 -!- corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has quit [Ping timeout: 240 seconds] 19:28:32 jsnell wrote a tree shaker 19:30:30 Soulman1 [~knute@166.80-202-254.nextgentel.com] has joined #lisp 19:31:25 lichtblau: To reduce executable sizes?... 19:31:52 Hexstream: why else? 19:31:52 to shake apples from trees 19:32:04 Well, can it be a security feature as well? 19:32:05 Hexstream: i bet it can shake out LOOP from your images 19:32:28 pkhuong: There seriously aren't any other applications of a tree-shaker than reducing executable sizes in the whole of CS?... 19:33:04 Hexstream: not that I can think of, or if there are, it's a side effect of reducing size. 19:33:19 Not that computer science per se is much concerned with executable sizes. 19:33:33 pkhuong: What about aiding readability of tree structures? 19:34:17 Hexstream: it looks and parses like english, and yet I can't seem to make that last line make sense. 19:34:42 stassats: Since everyone uses LOOP (for now!), it likely won't shake it out, no. 19:34:45 smka [~s@77.29.23.25] has joined #lisp 19:35:57 pkhuong: Reading (with your eyeballs) a tree with lots of meaningless data is harder than a tree devoid of such meaningless data?... 19:36:29 Or maybe a tree shaker is not what I think it is ;P 19:36:34 who reads trees anyway? 19:36:44 stassats: Lispers?... 19:36:45 I only read dead trees. 19:37:09 "I do not think it means what you think it means." 19:37:19 wanderingelf [~user@c-71-61-22-64.hsd1.pa.comcast.net] has joined #lisp 19:37:27 -!- sm` [s@77.29.101.107] has quit [Ping timeout: 240 seconds] 19:37:32 tmh: That was totally not what I had in mind when I said that. 19:37:36 -!- mrSpec [~Spec@unaffiliated/mrspec] has quit [Ping timeout: 240 seconds] 19:37:36 http://www.youtube.com/watch?v=G2y8Sx4B2Sk 19:38:03 Hexstream: It's Friday, I'm just injecting some humor, at least for myself. 19:38:45 pdo [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has joined #lisp 19:39:38 mrSpec [~Spec@89-75-35-251.dynamic.chello.pl] has joined #lisp 19:39:38 -!- mrSpec [~Spec@89-75-35-251.dynamic.chello.pl] has quit [Changing host] 19:39:38 mrSpec [~Spec@unaffiliated/mrspec] has joined #lisp 19:40:03 Uh. "tree shaker" is not even googlable as a CS term. 19:40:28 -!- bsod1 [~osa1@188.58.216.31] has quit [Ping timeout: 276 seconds] 19:42:07 -!- dfkjjkfd [~paulh@210-11-ftth.onsnetstudenten.nl] has quit [Quit: Lost terminal] 19:42:17 seems like you could just do a precise mark and sweep gc with no protected regions and that would be just as good 19:42:28 Oh. I guess "tree shaking" and "dead-code elimination" are synonyms somewhat? 19:43:26 balooga1 [~00u4440@147.21.8.1] has joined #lisp 19:43:34 -!- smka [~s@77.29.23.25] has quit [Ping timeout: 255 seconds] 19:43:40 -!- GeneralMaximus [~general@122.163.246.88] has quit [Quit: See you in another life.] 19:43:46 -!- balooga [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 19:43:48 -!- cmm [~cmm@bzq-79-178-206-31.red.bezeqint.net] has quit [Remote host closed the connection] 19:44:01 -!- tfb [~tfb@92.41.106.217.sub.mbb.three.co.uk] has quit [Ping timeout: 240 seconds] 19:44:03 corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has joined #lisp 19:44:09 cmm [~cmm@bzq-79-178-206-31.red.bezeqint.net] has joined #lisp 19:44:34 quek [~quek@router1.gpy1.ms246.net] has joined #lisp 19:45:03 -!- JuanDaugherty [~Ren@cpe-72-228-177-92.buffalo.res.rr.com] has quit [Quit: Exeunt IRC] 19:45:30 The idea is of shaking the tree of function calls and reference and letting the unattached stuff fall out 19:47:22 That's what I had in mind. But I just wouldn't jump to the conclusion that the only application of doing this ever would be to reduce executable size. 19:47:22 -!- balooga1 [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 19:47:57 balooga [~00u4440@147.21.8.1] has joined #lisp 19:48:29 Teryl [~TerylisGa@c-66-177-72-141.hsd1.fl.comcast.net] has joined #lisp 19:48:30 does it matter for the present discussion? 19:48:33 thmzlt [~thomaz@24-217-48-63.dhcp.stls.mo.charter.com] has joined #lisp 19:48:51 Hola 19:49:07 sm` [s@77.29.16.130] has joined #lisp 19:49:32 Any chance someone here can help me with a noob question about emacs/slime? 19:49:41 yes 19:49:43 I guess many can 19:49:44 Teryl: Ask away! 19:50:09 (or rather, ask here!) 19:50:30 I'm a complete noob with emacs, running Arch Linux, installed clisp, emacs, and slime-cvs from the Arch repos. 19:50:52 -!- pdo [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has quit [Ping timeout: 250 seconds] 19:50:55 and when I attempt M-x slime is says [no match] 19:51:15 I'm sure this is some simple configuration problem, but I couldn't find anything in the slime manual. 19:51:16 I'm not sure running slime from a distro's repo is a good idea. 19:51:41 Why's that? 19:51:42 They often lag significantly behind the current slime. 19:51:44 Teryl: have you edited your .emacs 19:51:51 I can't even find it. 19:52:07 isn't in my home folder, and a search turned up nothing. 19:52:14 Teryl: http://common-lisp.net/project/slime/doc/html/Installation.html#Installation has some info about installation 19:52:15 And Arch is a Rolling release distro. 19:52:15 So you'll be more likely to run on problems and people will be less likely able to help. 19:52:17 Hexstream: Archlinux's SLIME is not _that_ behind, just some days. 19:52:20 Teryl: if it doesn't exist, create it. 19:53:15 goes in my home folder correct? 19:53:17 valium97582: Perhaps, I'm not aware of the state of Archlinux's repo in particular. 19:53:36 yeah, Arch is a rolling release, always bleeding edge. 19:53:39 Teryl: I'm using Arch. Install SBCL, and use quicklisp to install Slime. 19:53:48 that's my advice. 19:54:09 anychance you got a PKGBUILD? 19:54:11 CLISP doesn't play well with SLIME, ime. 19:54:15 Whoever said there was no such thing as a panacea... 19:54:18 Teryl: SBCL is in the repo. 19:54:24 k 19:54:30 Hexstream: Archlinux's package for SLIME is updated weekly at least IIRC. 19:54:45 sykopomp: The repo's SBCL is outdated 19:54:52 yeah, I just checked. 19:54:52 It's 1.0.44 19:55:13 at least it can compile clx 19:55:13 valium97582: I'm fine with that. Use ABS if it bothers you that much. 19:55:28 Ok, I just had some bad experiences with Lisp + distro repos in the past (on Ubuntu, and I stick to LTS releases). 19:55:59 Hexstream: Stay away from the lisp packages. Implementations are generally okay unless you're grabbing something truly ancient. 19:56:41 sykopomp: Yeah. Well with Quicklisp this is becoming/has become a total non-issue. 19:56:51 Hexstream: indeed. 19:57:06 astalla [~astalla@dynamic-adsl-94-36-39-71.clienti.tiscali.it] has joined #lisp 19:57:18 pdo [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has joined #lisp 19:57:43 One day I'll make something useful like that, damnit ;P 19:58:18 once I got a link here to a page describing (a) beautiful long complex formula(e) (with the simplest primitives) for a(ny) lisp function, does anyone remember? 19:58:36 (and/or have a similar link) 20:01:35 -!- murilasso [~murilasso@64.119.157.61] has quit [Quit: leaving] 20:02:39 Landr: Perhaps you mean Metacircular Semantics for Common Lisp Special Forms? http://home.pipeline.com/~hbaker1/MetaCircular.html 20:03:36 -!- Adlai_ [~leif@ool-18b966a4.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 20:03:41 HG` [~HG@85.8.73.116] has joined #lisp 20:04:02 yes, i found that too, but the one I remember was a page long of ((f(('#f() ... well, very compact syntax 20:04:45 You mean McCarthy's half-page of eval/apply? 20:05:31 Adlai_ [~leif@ool-18b966a4.dyn.optonline.net] has joined #lisp 20:05:45 probably? 20:06:18 no 20:07:12 -!- pdo [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has quit [Ping timeout: 240 seconds] 20:07:56 Landr: http://lib.store.yahoo.net/lib/paulgraham/jmc.lisp 20:08:09 nathanael [~nathanael@cable-86-56-104-170.cust.telecolumbus.net] has joined #lisp 20:08:38 drawing html tables using recursive functions isn't simple 20:09:10 -!- nathanael [~nathanael@cable-86-56-104-170.cust.telecolumbus.net] has quit [Quit: nathanael] 20:09:49 -!- quek [~quek@router1.gpy1.ms246.net] has quit [Quit: Client Quit] 20:12:18 quek [~quek@router1.gpy1.ms246.net] has joined #lisp 20:12:46 stassats: Hard to tell without context, but I'll take your word for it! 20:13:33 varjag [~eugene@4.169.249.62.customer.cdi.no] has joined #lisp 20:13:57 pdo [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has joined #lisp 20:15:18 i get data from postgresql, which looks somewhat n-dimensionally, then i recursively transform it into something like (n-dimension (n-1-dimension date ...)), and then draw an html table from that 20:15:32 keeping all those dimensions in the head isn't simple 20:15:42 s/date/data/ 20:16:15 -!- valium97582 [~daniel@189-47-113-196.dsl.telesp.net.br] has quit [Ping timeout: 246 seconds] 20:17:20 -!- Athas [~athas@82.211.209.226] has quit [Remote host closed the connection] 20:17:20 and in the end i need to do it backwards, so that the footer is symmetrical to the header, ugh 20:17:59 bsod1 [~osa1@188.58.216.31] has joined #lisp 20:18:10 -!- rafusy [rav@torvalds.rootnode.net] has quit [Ping timeout: 250 seconds] 20:18:41 Well, at least you don't have to do complex merging of cells? THAT is a friggin' nightmare with HTML tables. 20:19:08 -!- skalawag [~user@c75-111-102-202.amrlcmta01.tx.dh.suddenlink.net] has left #lisp 20:19:54 gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has joined #lisp 20:19:55 Or even relatively simple merging of cells, really. Hello non-local dependencies! 20:20:42 good thing i have LOOP 20:21:12 Actually, LOOP won't help you worth shit for complex merging of cells. 20:21:30 rafusy [rav@torvalds.rootnode.net] has joined #lisp 20:21:50 it helps me now iterating over rows 20:22:05 loop + recursion 20:22:14 DOLIST? MAPCAR? ;P Anyway, let's not go there. 20:23:31 gravicappa [~gravicapp@ppp85-140-144-146.pppoe.mtu-net.ru] has joined #lisp 20:23:46 -!- thom_ [~thom@pool-74-100-140-188.lsanca.fios.verizon.net] has quit [Quit: This computer has gone to sleep] 20:23:48 -!- urandom__ [~user@p548A2CFE.dip.t-dialin.net] has quit [Ping timeout: 250 seconds] 20:23:55 LAMBDA? 20:24:06 naked lambda 20:26:53 -!- balooga [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 20:26:54 balooga1 [~00u4440@147.21.8.1] has joined #lisp 20:27:43 -!- Hexstream [~hexstream@modemcable075.97-200-24.mc.videotron.ca] has left #lisp 20:31:18 -!- Joreji [~thomas@64-055.eduroam.RWTH-Aachen.DE] has quit [Ping timeout: 246 seconds] 20:35:13 -!- bsod1 [~osa1@188.58.216.31] has quit [Remote host closed the connection] 20:36:00 -!- wanderingelf [~user@c-71-61-22-64.hsd1.pa.comcast.net] has quit [Ping timeout: 240 seconds] 20:37:17 what's naked lambda? 20:38:16 lambda without anything else 20:38:21 -!- tcr1 [~tcr@cpc1-bour2-0-0-cust414.15-1.cable.virginmedia.com] has quit [Quit: Leaving.] 20:42:01 without parens? 20:43:11 Beetny [~Beetny@ppp118-208-143-239.lns20.bne1.internode.on.net] has joined #lisp 20:44:21 alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #lisp 20:49:11 -!- homie [~levgue@xdsl-78-35-132-214.netcologne.de] has quit [Read error: Operation timed out] 20:49:17 valium97582 [~daniel@189-47-113-196.dsl.telesp.net.br] has joined #lisp 20:49:28 homie` [~levgue@xdsl-78-35-166-228.netcologne.de] has joined #lisp 20:50:17 is there something like # for FORMAT, but the other way around? 20:50:27 sohail [~Adium@unaffiliated/sohail] has joined #lisp 20:50:32 *stassats* is leaning to "no" 20:51:20 astoon [~astoon@178.130.1.36] has joined #lisp 20:51:21 -!- parkq [~parkq@209-6-20-163.c3-0.wrx-ubr3.sbo-wrx.ma.cable.rcn.com] has quit [Ping timeout: 265 seconds] 20:51:38 *Xach* does not understand the "# for FORMAT" part 20:51:43 what is "# for FORMAT"? 20:51:48 prima_lux [~user@95.158.0.252] has joined #lisp 20:52:45 Xach: http://l1sp.org/cl/22.3 search for # 20:53:33 stassats: thanks, that's new to me. 20:53:57 What would the other way around be? 20:54:11 the number of things consumed? 20:54:15 yes 20:56:13 -!- rpg [~rpg@mpls.sift.info] has quit [Quit: rpg] 20:57:37 i wanted to make (format nil "~:{&~a=~a~}" '(("foo" 1) ("bar" 2))) output ? for the first argument, instead of & 20:58:03 ah 21:00:30 FORMAT is to primitive :( 21:00:39 i want more obfusaction! 21:01:16 *stassats* wonders how is it for other people to read his format strings 21:03:46 like "~[~;~v@{1~@*~:}~:;~@*~(~vR~)~]~%" 21:04:46 -!- valium97582 [~daniel@189-47-113-196.dsl.telesp.net.br] has quit [Read error: Connection reset by peer] 21:07:29 stassats: (format t "~:[~;?~]~:*~{~{~A~^=~}~^&~}" '(("foo" 1) ("bar" 2))) 21:09:07 drew mcdermott is spinning in whatever he's in right now. 21:09:27 Xach: yeah, I don't like it either ;) 21:10:06 -!- homie` [~levgue@xdsl-78-35-166-228.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 21:12:48 -!- astoon [~astoon@178.130.1.36] has quit [Ping timeout: 240 seconds] 21:13:46 homie [~levgue@xdsl-78-35-166-228.netcologne.de] has joined #lisp 21:13:54 -!- balooga1 [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 21:14:35 balooga [~00u4440@147.21.8.1] has joined #lisp 21:19:45 -!- sonnym [~evissecer@singlebrookvpn.lightlink.com] has quit [Quit: Leaving.] 21:23:53 i still think stassats should write a format tutorial. 21:24:18 i didn't fully transcend it yet 21:26:19 prljavi_hari [~h@dh207-33-247.xnet.hr] has joined #lisp 21:28:03 I'm trying to make exe aplication with "save-applicationre" in Clozu 21:29:05 clozure lisp but slime always crashes ? 21:29:24 format, much like perl, is mostly a bag of questionable tricks.. you just need to read the CLHS chapter 21:29:53 -!- homie [~levgue@xdsl-78-35-166-228.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 21:30:45 prljavi_hari: ccl exits aver save-application 21:31:32 it's not named as aptly as sbcl's "save-lisp-and-die" 21:32:56 stassats: I try to start it but it says that it's too big to fit memory 21:33:11 perhaps it's true 21:33:18 huangho [~vitor@201-35-145-251.paemt700.dsl.brasiltelecom.net.br] has joined #lisp 21:34:00 just adding two numbers for test cannot fit 2 gb 21:34:10 Hola again 21:34:34 Noob here having problems with emacs/slime 21:34:45 i remember you! 21:34:52 Awesome 21:34:59 I remember you aswell stassats 21:35:44 I'm on Arch, I've installed sbcl, created an .emacs file, and I think I've pointed it to the correct directory 21:35:49 here is another way: (format t "~?" "~{?~a=~a~}~@:{&~a=~a~}" '(("foo" 1) ("bar" 2) ("foobar" 2))) 21:36:43 -!- iwillig [~iwillig@dyn-128-59-150-188.dyn.columbia.edu] has quit [Quit: Leaving] 21:37:13 prljavi_hari: depends on the numbers! 21:37:57 very funny 21:38:17 strange, that wasn't a joke 21:39:01 ok (+ 2 2) ate my 2gb-s 21:39:39 so, how did you make it? 21:39:40 stassats: that doesn't work if the list is empty 21:40:21 Teryl: normally when you install slime with pacman it says what line you have to add to your config 21:40:53 -!- splittist [~IceChat77@30-245.62-188.cust.bluewin.ch] has quit [Quit: shouldn't this all be sorted with quicklisp? who installs slime manually now?] 21:40:53 PissedNumlock: I will look at that now 21:41:51 i'm working on problem 2 from the "99 lisp problems" at http://goo.gl/OIFL ... my solution is here: http://paste.pocoo.org/show/320735/ 21:42:11 but when i try the example, i get an error: "The value B is not of type LIST." 21:42:32 what's going on here? and is there any way to get some kind of useful trace in the debugger to see what's happening? 21:43:03 (trace ) 21:43:08 thanks 21:43:38 stassats: (make-application "c:/app.exe" :toplevel-function #'init) 21:44:17 well, "(trace my-but-last)" didn't seem to add any useful info at all, unfortunately 21:44:57 adeht: then (format t "~*~:[~;~@*~?~]" "~{?~a=~a~}~@:{&~a=~a~}" '(("foo" 1) ("bar" 2))) 21:45:02 gigamonkey [~user@adsl-99-179-45-198.dsl.pltn13.sbcglobal.net] has joined #lisp 21:45:06 it's a (+ 2 2), just for test 21:45:11 even more beautiful 21:45:12 pattern: what argument do you give to your function? 21:45:18 pattern: You are using second and third so endp is going to be applied to elements of the list. 21:45:28 PissedNumlock: (my-but-last '(a b c d)) 21:45:29 [and Good morning everyone!] 21:45:44 pattern: You want to use cdr and cddr. 21:46:23 what's wrong with applying endp to elements of the list? i want to check if they're nil... 21:46:35 pattern: You do? 21:46:38 don't i? 21:46:39 endp only works on lists 21:46:43 ah 21:46:49 pattern: So you want to check whether a is nil, b is nil, etc? 21:46:55 btw, whenever you get pissed off about XML data, think about data delimited by unspecified amount of blank lines 21:46:59 beach: yeah 21:47:11 pattern: They aren't, they are a, b, etc. 21:47:39 null is what you want, as (endp 'a) gives an error, since 'a is not of type list 21:47:45 beach: but at some point the next element in the list will be nil 21:47:50 PissedNumlock: That is not the problem here. 21:48:03 why do you use second and third at all? 21:48:04 pattern: No, the elements of the list are a, b, c, and d. 21:48:15 yes it is beach ? (endp (second '(a b c d))) throws an error 21:48:31 PissedNumlock: Fine. 21:48:40 pattern: You are confusing elements of the list and successive tails of the list. 21:48:58 pattern: (b c d) is not an element of the list (a b c d) 21:49:20 beach: i thought (a b c d) was actually another way of writing (a b c d nil) 21:49:34 pattern: It is not. 21:49:41 that would be (cons a (cons b (cons c (cons d nil)))) 21:49:45 are there other ways (free) to make an exe ? 21:49:50 (a b c d . nil) 21:49:51 pattern: It is another way of writing (a b c d . nil) 21:49:57 ah, right 21:50:11 pattern: so you can't get to nil by using first and second. 21:50:28 hmm 21:51:03 homie [~levgue@xdsl-78-35-166-228.netcologne.de] has joined #lisp 21:51:06 why is it named but-last? this is confusing 21:51:30 pattern: In the second clause of the cond, you want to test whether the list has a single element, right? 21:51:31 Are you asking why butlast is named butlast? 21:51:56 mascotte [~mascotte_@AClermont-Ferrand-651-1-23-249.w86-194.abo.wanadoo.fr] has joined #lisp 21:51:57 drdo: i'm talking about the link pattern pasted 21:52:04 oh 21:52:08 stassats: the problem is "Find the last but one box of a list." ... and i'm just using the name given in the example 21:52:15 because "penultimate" is too fancy 21:52:22 what's box? 21:52:31 i guess it's some prolog thing 21:52:43 the problems are "Based on a Prolog problem list by werner.hett@hti.bfh.ch" 21:52:49 are these problems for kindergarten, or something? 21:53:00 it's this: http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html 21:53:00 pattern: If so, (endp (cdr l)) is how to do that. 21:53:01 -!- Jasko3 [~tjasko@c-174-59-223-208.hsd1.pa.comcast.net] has quit [Ping timeout: 240 seconds] 21:53:30 it's named but-last, but what it does it (last list 2) 21:53:41 -!- quek [~quek@router1.gpy1.ms246.net] has quit [Quit: Client Quit] 21:54:07 pattern: And in the third clause of the cond, you want to test whether the list has two elements, right? The way to do that is (endp (cddr l)). 21:54:08 beach: thanks.. yeah, i'll just rewrite my solution using car and cdr 21:54:11 -!- sohail [~Adium@unaffiliated/sohail] has quit [Quit: Leaving.] 21:54:24 Vicfred [~Vicfred@189.143.74.161] has joined #lisp 21:54:42 pattern: It is important that you know the difference between (cdr l) and (second l). 21:54:52 yeah.. i can see that 21:55:11 actually, i know the difference between cdr and second 21:55:11 -!- balooga [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 21:55:20 balooga [~00u4440@147.21.8.1] has joined #lisp 21:55:23 but i thought second was just (car (cdr l)) 21:55:29 it's cadr 21:55:30 pattern: It is. 21:55:31 it is 21:55:55 pattern: But if you apply that to (a b c d), then you are going to test whether b is nil. 21:56:08 pattern: But what you really want to do is test whether (b c d) is nil. 21:56:15 well, the way i started thinking about this problem is this: 21:56:36 i wanted to first find the case when i'm given (), so that's the first clause in the cond 21:56:48 -!- petercoulton [~petercoul@cpc2-midd16-2-0-cust169.11-1.cable.virginmedia.com] has quit [Ping timeout: 240 seconds] 21:56:51 pattern: Correct. 21:56:52 i always use cadr instead of "second", e.g. "this functions takes 10 cadrs to execute" 21:56:56 then i want to test the case when i'm given (d), and that's the 2nd clause in the cond 21:57:10 balooga1 [~00u4440@147.21.8.1] has joined #lisp 21:57:12 pattern: solutions are to be found at http://www.informatimago.com/develop/lisp/l99/ 21:57:16 pattern: correct again, but that's not what you are doing. 21:57:18 then i test when i'm given (c d), and that's the third clause of the cond, when i can finally return the answer 21:57:36 pattern: correct again, but again that's not what you are doing. 21:57:51 -!- balooga [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 21:57:59 pjb: thanks! a lot of the links to the solutions on the original page were broken 21:58:25 pattern: because to test whether you have (d) you need to say (endp (cdr l)) and to test whether you have (c d) you need to say (endp (cddr l)). 21:58:30 Mine is not complete either, but up to p73 for now. 21:59:08 i thought (endp (second l)) would match (d) 21:59:45 pattern: The problem is when you are given the first list, (a b c d), then (second l) is b. 22:00:13 right.. and b is not nil, so the 2nd cond clause would not apply 22:00:14 pattern: Why would you want to use (second l) on a list that has only one element? 22:00:48 -!- bobbysmith007 [~russ@216.155.97.1] has left #lisp 22:00:51 because i didn't know that endp only worked on lists 22:00:54 not on list elements 22:01:04 list elements may be lists. 22:01:14 pattern: That's not my question though. Why would you ever be interested in what elements you have in this list? 22:01:43 pjb: then why am i getting this error? "The value B is not of type LIST." 22:01:54 endp expects a proper list. 22:02:07 either a cons cell, or nil; nothing else. 22:02:25 beach: because i want to skip the cases when i'm close to the end of the list 22:02:26 pattern: Again, why would this code *ever* inspect any particular element of the list? 22:02:59 pattern: You are only interested whether it has 0, 1, 2, or more elements, not *which* elements you have. 22:03:00 being close to the end is not defined by the element INSIDE the list, but by the tail or tail of the tail, etc of the list. 22:03:06 beach: because in the cases when i get a list with zero or one element i want to return nil 22:03:22 car goes INSIDE the list. cdr only concerns itself with tails. 22:03:25 pattern: No, and that's what I have been trying to tell you for some 15 minutes now. 22:03:30 (endp (rest (rest l))) 22:03:51 (endp (nthcdr 2 l)) 22:04:23 (defun nth-tail (n list) (nthcdr n list)) 22:04:34 beach: i appreciate your help.. really.. and i think i do understand what you're getting at.. that nil isn't an element of the list, and that's why i couldn't test for it with second, and that endp only tests lists, that's why it balks at seeing b 22:05:36 stassats: sorry, I meant: (save-application "c:/app.exe" :toplevel-function #'init) and when I try to launch app.exe in command line it says: Program too big to fit memory 22:06:00 prljavi_hari: no :prepend-kernel t? 22:06:20 and you can reuse the result of (cddr list) to iterate further, if it's not the end 22:06:27 balooga [~00u4440@147.21.8.1] has joined #lisp 22:06:29 pattern: Your function should never use CAR, because your function doesn't care about the elements in the list 22:06:32 -!- balooga1 [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 22:06:34 rpg [~rpg@216.243.156.16.real-time.com] has joined #lisp 22:06:46 ok, i'll add that 22:08:05 pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has joined #lisp 22:08:10 not really, it will only work for lists of even length, oh well 22:08:35 i think i need to stare at the problem some more, with everything that everyone here has told me in mind 22:08:49 thank you 22:09:37 pattern: Try writing LAST 22:09:58 ok, i'll do that 22:11:00 valium97582 [~daniel@189-47-113-196.dsl.telesp.net.br] has joined #lisp 22:11:52 balooga1 [~00u4440@147.21.8.1] has joined #lisp 22:11:54 -!- balooga [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 22:12:21 -!- xraycat [~Miranda@brln-4d0c8fd7.pool.mediaWays.net] has quit [Quit: xraycat] 22:12:21 drdo: (defun my-last (l) (cond ((endp l) nil) ((endp (rest l)) (first l)) (T (my-last (rest l))))) 22:13:24 clhs last 22:13:26 ffff 22:13:47 http://www.lispworks.com/documentation/HyperSpec/Body/f_last.htm 22:14:24 -!- Adlai_ [~leif@ool-18b966a4.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 22:14:43 why do you need ((endp l) nil)? 22:15:02 Because maybe he doesn't know that car and cdr of nil is nil 22:15:06 Not important 22:15:53 ah 22:16:01 -!- balooga1 [~00u4440@147.21.8.1] has quit [Ping timeout: 240 seconds] 22:16:12 i did read that.. but forgot 22:16:13 in scheme, it's not 22:16:33 balooga [~00u4440@147.21.8.1] has joined #lisp 22:16:39 and which sucks 22:17:05 It comes in quite handy a lot of times 22:17:18 -!- BrandLeeJones [~BrandLeeJ@84.114.246.246] has quit [Quit: BrandLeeJones] 22:17:21 looks like my re-implementation of last failed on this example from the hyperspec: (my-last '(1 2 . 3)) 22:17:22 But it isn't by any standard obvious that it should be that way 22:17:44 it should return (2 . 3) but instead i get an error: "The value 3 is not of type LIST." 22:17:45 pattern: Indeed, your my-last will only work for proper lists 22:18:41 pattern: that's because you have (first l) 22:18:49 that's not how LAST is specified to work 22:19:28 ok.. i'll try reading the hyperspec entry on last and try a more careful re-implementation 22:19:30 stassats: It will fail even before that, on endp 22:19:39 yeah 22:20:35 will using "null" instead of "endp" be any better? 22:21:05 It will be you the same problem 22:21:06 *pattern* feels like a blind person groping in the dark 22:21:07 *give 22:21:11 try it 22:21:15 i should probably just go back to reading tutorials.. 22:21:37 -!- gravicappa [~gravicapp@ppp85-140-144-146.pppoe.mtu-net.ru] has quit [Ping timeout: 272 seconds] 22:21:39 Because if you test with NULL, and it fails, meaning it is not NIL 22:21:47 Your function will try to take the CDR of it 22:21:56 And if it's not a cons, it's an error 22:22:04 astoon [~astoon@178.130.1.36] has joined #lisp 22:22:33 ahh... so (first (2 . 3)) fails.. 22:22:47 gravicappa [~gravicapp@ppp85-140-66-192.pppoe.mtu-net.ru] has joined #lisp 22:22:58 yeah, seriously, this whole car cdr business is too insignificant for geniuses like us to be bothered 22:23:21 pattern: what? 22:23:48 pattern: didn't you forget to quote it? 22:24:17 oh 22:24:21 pattern: (defun my-last (l) (if (null (rest l)) l (my-last (rest l)))) 22:24:24 If you had it like this 22:24:32 *pattern* is not looking 22:24:36 And you called it on an improper list 22:24:40 reverse the clauses and ditch NULL! 22:24:42 i don't want the answer to be given me on a silver platter 22:24:46 Jasko [~tjasko@c-174-59-223-208.hsd1.pa.comcast.net] has joined #lisp 22:24:49 It wouldn't work 22:25:01 my first nick on irc was pattern and it's very confusing 22:25:04 what wouldn't? 22:25:05 pattern: That's not the answer, that's a wrong one 22:25:10 ah, ok 22:25:29 -!- rmarianski [~rmariansk@mail.marianski.com] has quit [Quit: leaving] 22:25:43 stassats: (my-last '(1 2 . 3)) at some point calls (my-last 3), which calls (cdr 3) which is an error 22:25:47 -!- Krystof [~csr21@csrhodes.plus.com] has quit [Ping timeout: 240 seconds] 22:26:09 dlowe: did ask such kind of questions too? maybe it's a tear in the space-time continuum 22:26:14 did you 22:26:50 drdo: oh, i see 22:28:22 (defun my-last (l) (if (atom (cdr l)) l (my-last (cdr l)))) 22:28:23 so do i need to use consp? 22:28:31 stassats: this was pre-lisp for me. 22:28:37 pre-efnet, actually :p 22:29:42 pre-lisp, 50s? 22:30:27 (pre-lisp for me) not ((pre-lisp) for me) 22:30:41 i hope you guys don't mind my asking such newbie questions 22:30:47 (pre (lisp for me))? 22:31:04 ((pre (lisp)) for me) 22:31:08 Clearly 22:31:22 -!- prima_lux [~user@95.158.0.252] has quit [Remote host closed the connection] 22:31:56 -!- js0000 [~js@67.208.188.68] has quit [Quit: goodbye!] 22:31:59 i should've guessed, there was no IRC in the 50s, that's why they were able to send a man into space 22:32:18 pattern: you could just draw the cons cells, and when you call CAR, look into the left square, and when you call CDR, look into the right square, following any arrow. See for example http://paste.lisp.org/display/105734 22:32:22 They send people to space all the time 22:32:35 Nah, just kidding, it's all staged in mars! 22:32:39 by inertia 22:32:53 pattern: of course we don't mind. it keeps the channel fresh 22:33:20 It does? 22:33:35 sohail [~Adium@unaffiliated/sohail] has joined #lisp 22:34:00 #lisp's most chatty times are when someone starts asking questions nicely 22:35:03 pjb: nice diagram... reminds me of the diagrams from Lisp: A Gentle Introduction 22:35:34 It's way more interesting when there's something for people to disagree on 22:35:37 codelurker [~codelurke@66.71.230.209] has joined #lisp 22:36:09 ascii art is passe, there should be a cons-drawing function using opengl 22:36:13 -!- rme [~rme@pool-70-106-129-201.chi01.dsl-w.verizon.net] has left #lisp 22:36:24 lol 22:36:24 that generally happens during the answering process 22:37:00 it's hard to disagree on what CAR and CDR do 22:37:02 dlowe: But on this question there isn't really much to disagree on 22:37:30 drdo: we're disagreeing right now :p 22:37:51 but that wasn't an answer to a question! 22:37:52 It's fun when someone posts a horrible mess and everyone goes there and tries to one-up each other with incrementally better and clearer solutions 22:38:31 stassats: Is the expert of that. 22:38:36 i though everyone competes in more eloquent expression of "this code is terrible" 22:38:42 thought 22:38:43 haha 22:38:52 er, "stassats is the expert of that" is what I meant. 22:39:09 Ok, I have a great piece of mess. Bad news (for you) - it works. :P 22:39:21 But it's a mess anyway. 22:39:23 -!- balooga [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 22:39:24 -!- astoon [~astoon@178.130.1.36] has quit [Quit: Leaving] 22:39:27 Krystof [~csr21@csrhodes.plus.com] has joined #lisp 22:39:48 beach: writing lisp-golf helps 22:40:03 balooga [~00u4440@147.21.8.1] has joined #lisp 22:40:27 naryl: it works until it doesn't 22:40:44 Want to hve some fun with it? :) 22:40:47 stassats: That was deep 22:41:35 naryl: Give it to us. In the worst case nobody touches it. 22:42:01 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has quit [Quit: *poof*] 22:42:11 i wish there was something like lisp-critique, but more in depth, and automatically correcting 22:42:51 That would be very hard indeed 22:43:09 For the simple fact that no one ever agrees except on the most trivial things 22:43:44 i usually agree with myself 22:43:49 (if it's on the same day) 22:44:13 I've been to known to disagree with myself during the same day 22:44:27 https://bitbucket.org/naryl/clansite/src/ 22:44:39 Yeah, I know it's on hg, no need to bash for that. 22:45:07 TLDR 22:45:17 DarthShrine [~angus@60-242-109-62.tpgi.com.au] has joined #lisp 22:45:17 -!- DarthShrine [~angus@60-242-109-62.tpgi.com.au] has quit [Changing host] 22:45:17 DarthShrine [~angus@pdpc/supporter/student/DarthShrine] has joined #lisp 22:45:58 another web-framework, oh well 22:46:31 I hate the web, i wish someone killed it 22:47:23 It's a plain site. Not my fault it started to look like a framework. Or maybe it is. 22:47:33 (oh no not that again) 22:48:01 drdo: have you tried the new version, web 3.0? 22:48:02 naryl: Every program is really a framework, there isn't much distinction 22:48:36 davazp [~user@3.Red-83-46-6.dynamicIP.rima-tde.net] has joined #lisp 22:48:50 stassats: Does it bring Sense ? 22:49:57 drdo: it's web 2.0 + web 1.0, ajax with animated gifs 22:50:45 I love abusing AJAX so that your back button is useless 22:52:37 by the way, AJAX is the best buzzword ever 22:52:48 -!- balooga [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 22:53:00 what about COMET (tongue-through-cheek) 22:53:04 Right up there with Cloud 22:53:29 balooga [~00u4440@147.21.8.1] has joined #lisp 22:54:20 drdo: I like MS Win7's Buzzwords more. 22:54:54 naryl: You can't possibly beat Cloud 22:55:12 cl-oud, some cl project 22:55:50 How many "Our new MemoryBoost will make all your software run on 640kb of RAM" did you count while installing it? 22:55:54 Challenged Accepted 22:56:08 Yeah, nohing beats Cloud 22:56:33 naryl: Are you actually suggesting i installed such thing? I'm offended 22:56:58 *stassats* counts style-warnings while compiling SBCL 22:57:09 Everyone knows 22:57:29 When selling a product, you always need to add Deluxe, Hyper, Boost, Super, etc 22:57:50 HyperSpec 22:57:50 drdo: those are all keys on the Symbolics keyboard! 22:57:51 oh 22:57:54 And PRO 22:57:58 pro is good too 22:59:34 lol 23:00:04 is PROGN PRO? 23:00:11 Boost and Deluxe wasn't on symbolics keyboard, but Windows slowly replicated Super and Hyper keys back (they are incorrectly marked "Windows" and "Menu") 23:01:02 the whole thing lacks proper Compose key, though 23:01:15 stassats: No, my new and improved PROGN PRO is much better 23:02:07 -!- ehu [~ehuels@ip118-64-212-87.adsl2.static.versatel.nl] has quit [Ping timeout: 240 seconds] 23:02:34 is there a function like max that takes a key param? i.e. (max :key #'first '((2 . b) (3 . c) (4 . d))) 23:02:36 -!- LiamH [~none@pdp8.nrl.navy.mil] has quit [Quit: Leaving.] 23:02:41 or just sort and take first 23:03:01 no 23:03:18 there is reduce, but it will return 4 23:03:55 -!- astalla [~astalla@dynamic-adsl-94-36-39-71.clienti.tiscali.it] has quit [Quit: Sto andando via] 23:04:16 yan_: Don't sort though. 23:04:17 These little awkward things bother me a lot 23:04:41 beach: use reduce on #'max? 23:05:08 yan_: No, you can't as stassats pointed out. 23:05:35 -!- mascotte [~mascotte_@AClermont-Ferrand-651-1-23-249.w86-194.abo.wanadoo.fr] has quit [Quit: Quitte] 23:05:49 -!- prljavi_hari [~h@dh207-33-247.xnet.hr] has left #lisp 23:06:25 yan_: But stassats had a solution the other day: (find (reduce #'max list :key #'car) list :key #'car) or something like that. 23:07:26 -!- hugod [~hugod@76.66.191.181] has quit [Ping timeout: 240 seconds] 23:07:36 (reduce (lambda (&optional x y) (if (and x y (> (car x) (car y))) x y)) list) 23:07:55 morphling [~stefan@gssn-5f754c71.pool.mediaWays.net] has joined #lisp 23:08:54 -!- alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Quit: alexsuraci] 23:09:16 stassats: that's what i ended up going with.. thanks 23:09:24 but it's ugly! 23:10:20 how would you do it? 23:10:57 if you're a fan of iterate, you can do (iterate (for i in list) (finding i maximizing (car i))) 23:12:01 -!- pdo [~pdo@dyn-62-56-66-237.dslaccess.co.uk] has quit [Quit: pdo] 23:12:31 and i would probably write even more uglier version with LOOP 23:14:33 silenius [~silenus@cpe-76-87-89-40.socal.res.rr.com] has joined #lisp 23:14:47 colinh [~colin@p57BA77B9.dip.t-dialin.net] has joined #lisp 23:15:31 -!- colinh [~colin@p57BA77B9.dip.t-dialin.net] has quit [Client Quit] 23:18:58 zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has joined #lisp 23:25:25 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 255 seconds] 23:26:23 -!- Teryl [~TerylisGa@c-66-177-72-141.hsd1.fl.comcast.net] has quit [Quit: Leaving] 23:29:45 hargettp_ [~anonymous@pool-71-184-190-7.bstnma.east.verizon.net] has joined #lisp 23:32:46 -!- codelurker [~codelurke@66.71.230.209] has quit [Quit: WeeChat 0.3.3] 23:34:54 -!- snearch [~snearch@f053002083.adsl.alicedsl.de] has quit [Remote host closed the connection] 23:35:19 -!- zomgbie [~jesus@h081217131002.dyn.cm.kabsi.at] has quit [Ping timeout: 255 seconds] 23:37:55 Adlai_ [~leif@69.sub-174-252-18.myvzw.com] has joined #lisp 23:38:29 -!- morphling [~stefan@gssn-5f754c71.pool.mediaWays.net] has quit [Remote host closed the connection] 23:40:34 ZabaQ [~john.conn@host81-155-53-140.range81-155.btcentralplus.com] has joined #lisp 23:40:39 -!- sluggo [~chris@net-216-37-86-189.in-addr.worldspice.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:41:19 -!- sohail [~Adium@unaffiliated/sohail] has quit [Quit: Leaving.] 23:43:20 -!- balooga [~00u4440@147.21.8.1] has quit [Read error: Connection reset by peer] 23:43:22 balooga1 [~00u4440@147.21.8.1] has joined #lisp 23:44:06 -!- HG` [~HG@85.8.73.116] has quit [Quit: Leaving.] 23:46:05 sohail [~Adium@unaffiliated/sohail] has joined #lisp 23:47:23 -!- mega1 [~quassel@catv4E5CABA2.pool.t-online.hu] has quit [Ping timeout: 260 seconds] 23:49:36 ok.. i think i'm starting to see where i had some misconceptions... i thought (second l) returned the second element of a list.. whereas in fact it's equivalent to (car (cdr l)) which only works if the second element is a cons cell... 23:49:42 in particular, it wouldn't work with (second '(1 . 2)) because the second element in this list is not a cons cell 23:50:43 seems kind of silly that a function named "second" won't actually get the second element of the '(1 . 2) list 23:51:21 -!- sohail [~Adium@unaffiliated/sohail] has quit [Quit: Leaving.] 23:52:33 but '(1 . 2) isn't a proper list 23:52:41 it's just a cons 23:52:51 pattern: second returns the second element of a list 23:53:18 Your problem is that you don't know what a list is 23:53:58 unicode [~user@95.214.56.1] has joined #lisp 23:54:07 hmm 23:54:24 all lists have to have a nil as the cdr? 23:54:39 -!- unicode [~user@95.214.56.1] has quit [Client Quit] 23:54:44 pattern: no...cdr jsut means "rest of the list after the head" 23:54:48 no, as the last element 23:55:39 pattern: Do you know what a cons is? 23:56:23 i thought i did... a cell with a head an a tail 23:56:35 something you can construct with the cons function 23:56:46 a head and a tail? 23:56:47 pattern: no...a list has a head and tail :) 23:57:04 -!- Adlai_ [~leif@69.sub-174-252-18.myvzw.com] has quit [Ping timeout: 276 seconds] 23:57:05 a cons is just a pair of stuff 23:57:12 hargettp: then why can i use both car and cdr on '(1 . 2) ? 23:57:13 Edward__ [~ed@AAubervilliers-154-1-70-176.w81-249.abo.wanadoo.fr] has joined #lisp 23:57:14 the car is the left one, the cdr is the right one 23:57:21 doesn't car return the head and cdr the tail? 23:57:31 pattern: yes, but `( 1. 2) is not a list 23:57:39 Wow 23:57:45 It's amazing how confused you are 23:57:51 timor [~timor@port-92-195-123-173.dynamic.qsc.de] has joined #lisp 23:57:56 I didn't know that was possible 23:58:11 pattern: but, a list like `(1 2 3) is shorthand for `(1 . (2 . (3) )) 23:59:39 the truth is always offby1 23:59:45 lol 23:59:46 and (3) is actually (3 . nil), right? 23:59:50 a cons cell is just a cell with two slots: left (car) and right (cdr) 23:59:50 right 23:59:54 pattern: yep