00:01:15 Paraselene_ [~Not@81-178-167-119.dsl.pipex.com] has joined #scheme 00:01:59 -!- samth is now known as samth_away 00:04:46 -!- Paraselene [~Not@81-178-167-119.dsl.pipex.com] has quit [Ping timeout: 276 seconds] 00:06:46 -!- Dawgmatix [~dman@c-76-124-9-27.hsd1.nj.comcast.net] has quit [Ping timeout: 245 seconds] 00:21:21 -!- mjonsson [~mjonsson@cpe-74-68-121-85.nyc.res.rr.com] has quit [Quit: Leaving] 00:22:42 -!- curi_ [~curi@adsl-99-114-139-86.dsl.pltn13.sbcglobal.net] has quit [Quit: This computer has gone to sleep] 00:23:08 curi_ [~curi@adsl-99-114-139-86.dsl.pltn13.sbcglobal.net] has joined #scheme 00:24:01 RageOfThou [~RageOfTho@users-55-236.vinet.ba] has joined #scheme 00:25:12 mbohun [~mbohun@202.124.72.36] has joined #scheme 00:26:35 Dawgmatix [~dman@c-24-0-151-136.hsd1.nj.comcast.net] has joined #scheme 00:27:36 -!- FunkyDrummer [~RageOfTho@users-33-95.vinet.ba] has quit [Ping timeout: 245 seconds] 00:31:25 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Ping timeout: 276 seconds] 00:31:45 arcfide: pong 00:42:18 MrFahrenheit [~RageOfTho@users-55-236.vinet.ba] has joined #scheme 00:42:24 -!- MrFahrenheit [~RageOfTho@users-55-236.vinet.ba] has quit [Read error: Connection reset by peer] 00:43:44 -!- RageOfThou [~RageOfTho@users-55-236.vinet.ba] has quit [Ping timeout: 240 seconds] 01:15:42 -!- saint_cypher_ [~saint_cyp@dsl081-240-057.sfo1.dsl.speakeasy.net] has quit [Ping timeout: 260 seconds] 01:25:47 -!- Dawgmatix [~dman@c-24-0-151-136.hsd1.nj.comcast.net] has quit [Quit: Ex-Chat] 01:26:20 -!- acarrico [~acarrico@pppoe-68-142-35-203.gmavt.net] has quit [Read error: Operation timed out] 01:39:48 toast` [~toast`@c-71-227-233-160.hsd1.wa.comcast.net] has joined #scheme 01:41:14 acarrico [~acarrico@pppoe-68-142-35-203.gmavt.net] has joined #scheme 01:43:19 -!- toast` [~toast`@c-71-227-233-160.hsd1.wa.comcast.net] has quit [Client Quit] 01:51:41 -!- R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has quit [Ping timeout: 240 seconds] 01:56:57 -!- curi_ [~curi@adsl-99-114-139-86.dsl.pltn13.sbcglobal.net] has quit [Quit: Leaving] 02:05:29 toekutr [~toekutr@adsl-69-107-114-83.dsl.pltn13.pacbell.net] has joined #scheme 02:07:52 asarch [~asarch@189.188.155.249] has joined #scheme 02:09:20 -!- Axioplase_ is now known as Axioplase 02:10:44 dfkjjkfd [~paulh@214-13-ftth.onsnetstudenten.nl] has joined #scheme 02:14:42 -!- snarkyboojum [~snarkyboo@110-174-43-105.static.tpgi.com.au] has quit [Quit: snarkyboojum] 02:16:03 -!- proq [~user@unaffiliated/proqesi] has quit [Ping timeout: 260 seconds] 02:25:50 ktzqbp [~ktzqbp@unaffiliated/ktzqbp] has joined #scheme 02:30:05 snarkyboojum [~snarkyboo@120.152.126.42] has joined #scheme 02:32:21 *mbishop* is selling Practical Common Lisp used for $39 on amazon *cough* 02:32:58 incubot: dentures? 02:33:01 the kinds of towel are unbounded, receding off into the distance like tier upon tier of indistinguishable talking heads or Dick Clark's dentures. 02:43:05 pinchyfingers [~user@pool-173-62-244-19.phlapa.fios.verizon.net] has joined #scheme 02:48:46 -!- rbarraud [~rbarraud@60-234-227-144.bitstream.orcon.net.nz] has quit [Read error: No route to host] 02:49:03 rbarraud [~rbarraud@60-234-227-144.bitstream.orcon.net.nz] has joined #scheme 02:56:04 -!- timj__ [~timj@e176205160.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 02:58:23 -!- luz [~davids@189.60.69.82] has quit [Quit: Client exiting] 02:58:32 -!- ktzqbp [~ktzqbp@unaffiliated/ktzqbp] has quit [Ping timeout: 258 seconds] 02:59:50 rudybot: hurl your dentures at mbishop for me, willya? 02:59:51 *offby1: try again, willya? 02:59:58 hmm, how to rephrase that ... 03:06:40 specbot [~specbot@common-lisp.net] has joined #scheme 03:09:33 minion [~minion@common-lisp.net] has joined #scheme 03:09:38 timj__ [~timj@e176194191.adsl.alicedsl.de] has joined #scheme 03:09:50 minion: give dentures to mbishop 03:09:53 Sorry, I couldn't find anything in the database for ``mbishop''. 03:10:01 That didn't quite work. 03:25:23 psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has joined #scheme 03:25:42 -!- Kizaru [~plaz@pool-173-76-170-157.bstnma.fios.verizon.net] has quit [Read error: Connection reset by peer] 03:32:46 -!- psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has quit [Ping timeout: 264 seconds] 03:41:09 minion: give a better database to minion 03:41:10 a: minion: watch out, you'll make krystof angry 03:41:18 rudybot: give dentures to mbishop 03:41:18 *offby1: error: reference to an identifier before its definition: to in module: 'program 03:41:22 -!- Zarutian [~zarutian@194-144-84-110.du.xdsl.is] has quit [Quit: Zarutian] 03:41:30 oh pshaw 03:42:54 -!- pinchyfingers [~user@pool-173-62-244-19.phlapa.fios.verizon.net] has quit [Remote host closed the connection] 03:43:45 -!- MononcQc [~Ferd@modemcable062.225-20-96.mc.videotron.ca] has quit [Quit: leaving] 03:53:08 -!- snarkyboojum [~snarkyboo@120.152.126.42] has quit [Quit: snarkyboojum] 03:53:56 jonrafkind [~jon@c-67-172-254-235.hsd1.ut.comcast.net] has joined #scheme 03:55:40 virl [~virl__@chello062178085149.1.12.vie.surfer.at] has joined #scheme 04:01:02 snarkyboojum [~snarkyboo@120.156.168.249] has joined #scheme 04:01:54 ktzqbp [~ktzqbp@unaffiliated/ktzqbp] has joined #scheme 04:06:48 -!- asarch [~asarch@189.188.155.249] has quit [Quit: Leaving] 04:08:48 -!- ktzqbp [~ktzqbp@unaffiliated/ktzqbp] has quit [Read error: Connection reset by peer] 04:32:03 -!- turbofail [~user@adsl-69-238-246-201.dsl.pltn13.pacbell.net] has quit [Remote host closed the connection] 04:42:32 R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has joined #scheme 04:58:46 copumpkin_ [~copumpkin@94.166.38.91] has joined #scheme 05:01:10 -!- copumpkin [~copumpkin@94.165.73.118] has quit [Ping timeout: 276 seconds] 05:01:10 -!- copumpkin_ is now known as copumpkin 05:02:37 -!- bgs100 is now known as bgs000 05:03:04 -!- virl [~virl__@chello062178085149.1.12.vie.surfer.at] has quit [Remote host closed the connection] 05:14:13 -!- R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has quit [Quit: Leaving] 05:32:54 R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has joined #scheme 05:38:54 proq [~user@unaffiliated/proqesi] has joined #scheme 05:41:43 -!- R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has quit [Read error: Connection reset by peer] 05:44:46 R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has joined #scheme 05:55:33 -!- R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has quit [Quit: This system is going down for poweroff RIGHT FREAKING NOW!!!] 06:02:03 psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has joined #scheme 06:05:08 -!- snarkyboojum [~snarkyboo@120.156.168.249] has quit [Quit: snarkyboojum] 06:05:25 Got a scheme question for you guys. I'm just learning scheme, and I'm wondering - if I have an object myObj (generated by make-myObj), should I create other global functions to use with it, or use closures? 06:06:18 Most of the built-in procedures seem to use global functions for modification purposes 06:06:24 But I'm still not sure 06:06:54 I'm not sure I understand the question. 06:07:06 Hmm. 06:07:08 Alright let me clarify 06:07:21 I come from a Java/C background, so I'm new to scheme 06:07:35 (and Lisp languages in general) 06:08:07 Basically, in Java I might create an object myObj, with maybe a few fields and a couple methods 06:08:32 How could I do something similar with (plt-)scheme? 06:09:17 I'm aware of some the oop libs/extensions out there; first of all I'm wondering how to do this without those, and second, I'm wondering if it's more commonplace to use such libs/extensions, and if so which ones I should look into 06:09:33 That depends on what you want to do. It may be that a proper object model using methods and such is the right way to go, in which case something like CLOS might be up your alley. More commonly, you may have a specific data abstraction you want to maintain, so you would encapsulate this in a record and then define a set of operation procedure that would work with that data type. 06:10:33 If in fact you're not even doing so much as that, but are just dealing with some normal scheme data type that you want to do certain things to, then you would just write the procedures to work on them, rather than creating the datatype. 06:10:51 R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has joined #scheme 06:11:15 Well to be even more specific to the problem I'm dealing with here: 06:11:27 I have a vector that holds pretty much all of my data 06:11:41 What sort of data? 06:11:43 (I might also use a list, I'm not sure - that's not very relevant though) 06:11:52 Its basically a table of data 06:12:06 Like, what? Gimme something concrete to work with. 06:12:12 a 2d array for memoization 06:12:18 Okay. 06:12:23 Actually n-d :) 06:12:27 Anyways 06:13:10 Along with it I need to store some other information, such as the function it's memoizing, how many of the fields actually have data stored in them, etc 06:13:30 Okay. 06:13:31 In Java it would be a MemoizedArray or something 06:13:38 But I'm not sure how to go about this in scheme 06:13:52 How do you intend to use this set of information? 06:14:30 Well I'm wanting to use it for solving memoization problems 06:14:31 For example, do you want to create a function from the original function that is memoized already? Are you doing something else with it? 06:14:43 Yes 06:14:48 Wait actually 06:14:54 Not sure if what you meant is what I'm doing :) 06:15:04 I want to use it in functions that need to be memoized 06:15:22 So when I'm making a function that will employ memoization 06:15:26 I could use this 06:15:55 So, I'm thinking of (DEFINE-MEMOIZED-FUNCTION my-orig-func) => memoized-func meta-info. 06:16:03 Yeah 06:16:17 That's another possibility I was thinking of 06:16:26 Except even in that case 06:16:31 So, you would get a new function that handles the memoized function, and maybe a separate object that you can get meta information from. 06:16:43 Sorry, handles the memoization. 06:16:44 hadronzoo [~hadronzoo@ppp-70-251-90-138.dsl.rcsntx.swbell.net] has joined #scheme 06:16:49 Yeah 06:16:58 Okay. 06:17:03 The main issue is creating the multi-dimensional array 06:17:27 So, in the above case, I would implement this with records. 06:17:32 (Using R6RS here.) 06:17:39 Alright I'm using PLT 06:17:46 Do records exist in plt? 06:18:08 Yes, and you can use R6RS in PLT if you use #lang r6rs. 06:18:34 what would you say some of the best improvements in R6RS are? 06:18:50 So, in your case, you have the memoization table, the fill amount, and the actual original function all grouped together. I'd add another field there, which is the memoizing function derived from the original. 06:19:01 soupdragon: Best improvements? Over what? 06:19:09 well I only know R5RS myself 06:20:20 psiblue: So, I would start with a record form like (DEFINE-RECORD-TYPE MEMOIZER (FIELDS TABLE ORIGINAL MEMOIZING POPULATION)). 06:20:35 Hmm 06:20:38 That looks good 06:20:54 Can you link me to a good resource on records? 06:20:57 Or possibly explain them? 06:21:00 Can't find anything 06:21:00 That would give me a disjoint data type MEMOIZER with the constructor MAKE-MEMOIZER, and various field accessors. 06:21:08 Yeah 06:21:12 psiblue: You could read the PLT documentation, or http://www.r6rs.org. 06:21:23 Hmm 06:21:29 I would also highly recommend http://www.scheme.com/tspl4/ 06:21:51 Alright I think that will cover the actual array 06:21:55 Another related question though 06:21:58 -!- jonrafkind [~jon@c-67-172-254-235.hsd1.ut.comcast.net] has quit [Ping timeout: 264 seconds] 06:22:01 That covers the R6RS standard in a more readable style than the standards documents. 06:22:01 -!- R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has quit [Read error: Operation timed out] 06:22:11 (btw thanks for the help!) 06:22:50 psiblue: Well, now, after that, the MAKE-MEMOIZING-PROC that you write would return the memoizing function closed over an instance of a MEMOIZER object with itself in the MEMOIZING field. 06:23:14 Yeah exactly 06:23:15 So, I am making use of a closure here in the function, so that it has the memoization information implicitly there, without having to have it passed as an argument. 06:23:20 Yeah 06:23:32 And then I would return the object itself as a second value. 06:23:38 Right 06:23:49 Actually hold on 06:23:52 Then, if I wanted to get useful information out of that object in some fashion or another, I would create other procedures that handled the MEMOIZER objects directly. 06:24:03 Yeah 06:24:19 kar8nga [~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net] has joined #scheme 06:24:25 So I could, perhaps say (MEMOIZATION-TABLE-FULL? So the MEMOIZER would basically be my array, right? 06:25:02 No, it's a new type of object, which holds all the information necessary to do memoization. It might hold the memoization array as one of its fields. 06:25:17 snarkyboojum [~snarkyboo@110-174-43-105.static.tpgi.com.au] has joined #scheme 06:25:26 I might also have a separate abstraction for memoization arrays. 06:25:35 With their own set of procedures for accessing elements in a nice way. 06:25:38 Yeah 06:25:38 But that's up to you. 06:25:46 That's what I'm mainly concerned with here 06:26:11 So, for a memoization table, generally, I use hashtables. 06:26:16 But that depends on the input. 06:26:26 In a case like this... 06:26:35 Actually that would work pretty well in this case 06:26:36 Haha 06:26:41 Wish I had thought of that before :) 06:26:48 Thanks!\ 06:27:16 You're welcome. 06:27:25 -!- psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has quit [Quit: Caution: breathing may be hazardous to your health.] 06:27:35 soupdragon: So, comparing R5RS to R6RS, strictly speaking, R6RS provides for much more functionality. 06:28:06 However, much of that functionality already existed in most implementations anyways, so that's not necessarily an improvement if you were already comfortable with what your implementation provided. 06:28:19 On the other hand, it did provide a standard for doing many things. 06:28:27 And it's usable most of the time. 06:28:37 The introduction of syntax-case is something I'm very pleased with. 06:28:45 Or, I should say, the standardization of syntax-case. 06:28:54 ohh syntax-case 06:28:59 I only know syntax-rules 06:29:06 psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has joined #scheme 06:29:10 although I think I saw somewhere you can implement it using syntax-rules 06:29:12 oops 06:29:14 soupdragon: SYNTAX-CASE is my preferred procedural macro system. 06:29:17 i mean, using syntax-case 06:29:23 It's very easy to do with syntax-case. 06:29:24 Hey actually I have another question 06:29:44 brandelune [~suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has joined #scheme 06:29:49 If I have some kind of object I create with make-myObj 06:29:52 In fact, the SYNTAX-CASE form is a pattern based form, so it's a fairly robotic transformation of a syntax-rules macro into a syntax-case macro. 06:30:14 soupdragon: Standard hashtables, records, and such are all also nice things. 06:30:28 okay cool 06:30:29 soupdragon: The I/O system leaves something to be desired. 06:30:33 Would it be reasonable to store the data in a list and just provide global functions for it? 06:30:48 What data are you storing? 06:30:52 Like to store a bunch of simple member fields 06:31:00 Then, chances are, no. 06:31:03 just like 'name', 'color', and 'number', for example 06:31:10 Or at least, that's not what you would want to do in any real industrial application. 06:31:21 Specifically, it doesn't really give you the proper data abstractions. 06:31:45 Yeah I suppose. But where's the line between global functions (such as those provided for vectors) 06:31:46 Now, if you wanted a simple dynamic lookup table with arbitrary keys such as name, color, and number, then an associaton list (list of pairs) might be the way to go. 06:31:51 and proper abstraction? 06:31:58 I don't understand. 06:32:23 Vectors are a data type, as are pairs. Things like VECTOR-SET! are just procedures that operate on those data types. 06:32:48 In Scheme, there's not this idea of data types and procedures being stuck together around objects. 06:32:56 Rather, there are objects, which procedures operate on. 06:33:10 Some operate on many different sorts of objects, some operate only on one type of object. 06:33:28 vectors are an abstraction, the only thing you know about them is that they are created by VECTOR and MAKE-VECTOR, and you can access them by VECTOR-SET! and VECTOR-REF.. (and literals). a Scheme could provide multiple subtypes of vectors 06:33:37 Using libraries, lexical scope, and the like, you can control which procedures are visible where. 06:33:49 Yes. 06:34:03 So, there is the data type, which is VECTOR, and there are a set of procedures that operate on vectors. 06:34:19 Sorry, VECTOR there is meant to be the type, not the procedure. 06:34:27 Right 06:34:31 Together they form a cohesive interface for vectors. 06:34:43 So, there is procedural abstraction, and data abstraction. 06:35:07 Yeah. So how can I go about creating a similar setup for my own 'type'? 06:35:12 with similar abstraction 06:35:20 Records are used for data abstraction, and procedures used for the procedural abstraction. Combined with syntactic abstraction and macros, you have the three primary means of abstraction in Scheme. 06:35:39 Are records _always_ used for data abstraction? 06:35:50 You create a record for your object, and then define procedures that operate on objects of that record type. 06:35:54 Not always. 06:36:04 But they are the standard way of doing data abstraction. 06:36:11 What are some alternatives? 06:36:18 It's like asking do you always use classes in Java. 06:36:27 Well actually yes you do :) 06:36:28 Or fields. 06:36:44 But in C++ that would make sense. 06:36:45 However 06:36:58 Records are the only standardized way to create disjoint types. 06:37:12 It is possible to create subtypes of an existing type, but these are not disjoint from the parent type. 06:37:35 Can you define 'disjoint type'? 06:37:42 I assume it means a type which is not related to any other ty pe 06:37:43 So, for example, you can treat lists of a certain form as XML. 06:37:44 *type 06:37:46 But I'm not sure 06:37:49 Which is what SXML does. 06:37:54 Yes. 06:38:09 A disjoint type is one for which every other type predicate other than its own type predicate will return false. 06:38:35 Right 06:38:43 Yeah that's what I'd like to be able to do 06:38:48 So, I could have a predicate SXML? that identified whether a list was valid SXML, but that doesn't mean that the SXML is not a disjoint type. 06:38:54 a type disjoint from all the default types would return #F to VECTOR?, NUMBER?, PAIR?, LIST?, etc. 06:38:56 If you want to create a completely disjoint type, you use records. 06:39:27 Right - you could create a type SXML that is also a VECTOR, but it wouldn't be disjoint. Cool 06:39:27 That is *the* facility in Scheme for doing so, though some Schemes over alternative means of doing these things. These other methods, however, are not commonly used and are intensely non-portable. 06:39:44 s/over/offer/ 06:39:50 Cool - thanks 06:40:06 No problem. 06:40:15 Is this what I'm supposed to be using? http://srfi.schemers.org/srfi-9/srfi-9.html 06:40:21 Be careful when you are doing these things that you don't try to write Java in Scheme, though. :-) 06:40:40 Yeah :) that's why I'm trying to be careful to learn what the best practices are early on 06:40:41 psiblue: So, if you ask me, I would recommend that you use R6RS records instead of SRFI-9, but others will disagree with you. 06:40:56 Can you outline the difference? 06:41:02 SRFI-9 is a fairly limited record system, even though it is widely available. 06:41:22 For example, SRFI-9 does not support things like parents. 06:41:30 So there is no inheritance. 06:41:33 That's a big thing for me. 06:41:51 Indeed; it's important to me coming from an oop bg as well 06:42:01 That seems a bit odd though 06:42:07 I also like R6RS protocols, opacity, and non-generative features, though these probably won't matter to you right now. 06:42:07 For there to be more than one records implementation 06:42:18 psiblue: :-) Welcome to Scheme. 06:42:21 I mean in Java it's not like there's more then one Class implementation 06:42:21 lol 06:42:30 Scheme is a place that encourages and downright demands individuality. 06:42:32 there are many. also, there are a few full-blown object systems around :) 06:42:47 There are umpteen different Scheme implementations, and probably as many different ways to do something. 06:42:52 psiblue: there are very good reasons for having different Class implementations :) 06:42:55 That's Scheme's great strength and also a weakness at times. 06:43:31 ecraven: What do you mean? 06:43:41 One nice thing about Scheme is that it is very extensible. You can do just about anything any way you want to do it. 06:44:31 arcfide: Indeed, it seems that way. However that does make it a bit confusing to find my way around things as a beginner 06:44:51 psiblue: Yes, I'm afraid that can be the case. However, if you stick to things like TSPL4, you'll find your way pretty quickly. 06:44:56 For example why not just use closures instead of records for creating 'objects'? 06:45:05 psiblue: The PLT docs can be a bit overwhelming at times if you stray to far, since PLT is full of things. 06:45:25 For example... 06:45:28 psiblue: as a simple example, if you have a class with few fields which are all used, you want to create storage space for each field in memory. however, if you have a class with very many fields, only a few of which are actually used, a hashmap would be a much better alternative for storing the fields 06:45:48 psiblue: So, records don't create objects, in the OOP sense. They encapsulate data, which is different than encapsulating data and methods. 06:46:09 You may use closures and records to implement an object system, in the OOP sense, though. 06:46:26 arcfide: http://www.scheme.com/tspl2d/start.html#g1740 06:46:37 scheme is flexible, so that you can build a specialized language that suites the problem solved by program "best" whereas java gives you one way of doing things where you have to bend the solution to its rules. 06:46:42 I've been learning from that a bit 06:46:51 if you scroll down 06:46:53 Um, I recommend you go with version 4 of that book. 06:47:02 lol didn't know one was available 06:47:06 TSPL4. 06:47:11 Ahh 06:47:15 psiblue: google scheming with objects... or look for prototyp oops in the community scheme wiki. 06:47:18 It includes R6RS and covers things like Records. 06:47:22 of/c 06:47:26 Alright I'll take a look at that then 06:47:35 It also has lots of nifty exercises that you can do. 06:47:36 tinyclos 06:47:55 ecraven: I was actually referring to implementing the class concept, which is done by the compiler, not the programmer 06:48:06 psiblue: Not in Scheme. :-) 06:48:22 lol 06:48:48 Above you said 'records don't create objects, in the OOP sense. They encapsulate data, which is different than encapsulating data and methods.' 06:48:49 psiblue: So, in other languages, there is often this strong distinction between the compiler and the built-in support of features, and what you can do as the programmer. 06:48:55 Yeah 06:49:06 scheme doesn't define compiler... 06:49:08 psiblue: ah, indeed, that's where you might be wrong ;) 06:49:13 psiblue: This isn't the case for Scheme. In fact, many compilers are nothing more special than normal user level programs. 06:49:28 ecraven: lol care to expand? 06:49:30 psiblue: there are reasons why this should not be only the compiler's task.. if you are interested, look at meta object protocols (mops) 06:49:43 psiblue: So, for instance, on a decent Scheme implementation, you don't have to use the built in pair. You can make your own. 06:49:44 the example i mentioned ;) and there are many more. 06:50:21 (define-record-type ( cons pair?) (fields (mutable first car set-car!) (mutable second cdr set-cdr!))) 06:50:22 Voila. 06:50:39 arcfide: Nice 06:50:57 psiblue: In the above instance, I should be able to use the above definition instead of the built-in primitive pair and notice no difference. In fact, in a good compiler, there's not speed difference either. 06:51:05 Yeah 06:51:13 The only problem I'm finding is with portability 06:51:53 The general wisdom is to not worry about portability when you're learning. 06:52:02 Because there's so many different implementations of records, what's to guarantee that your pairs function will work with mine? 06:52:17 psiblue: So long as DEFINE-RECORD-TYPE is supported, it will work. 06:52:31 psiblue: Of course, if you create your own pair, and I do the same, our pairs won't work on each other. 06:52:43 Yeah. 06:52:48 However, you could use your pairs internally and I wouldn't know the difference. 06:53:05 yeah, portibility is PITA... especially when you decide to switch from java to C++ and finally after starting a rewrite in C there is decision to go with C# 06:53:30 arcadefire: yeah that makes sense as well 06:53:52 psiblue: If you stick to TSPL4, you'll do well with portability, and you won't generally have too many troubles. Moreover, as you'll see, there is plenty of de facto consensus. Though, portability in the extreme is a bit of an art form in Schemeland. 06:54:30 Cool. I guess the other issue aside from portability 06:54:36 is when I bring my skills into the 'real world' 06:54:45 :-) 06:55:14 Yes...? 06:55:27 I don't want other scheme programmers to be say "Nope, sorry - everything you know from your scheme implementation actually doens't apply here because we actually use (insert scheme implementation here), and do OOP this way: ___" 06:55:37 *I don't want other programmers to say 06:55:51 With other languages I've still seen that as a problem 06:55:56 (or as a potential problem) 06:56:02 but only with larger-scale design related issues 06:56:21 in the real world you'll want to use python, but will have to settle for PHP, though there will alway be an option of writing stuff in perl 6 and compile it to haskell... 06:56:22 Here I'm seeing it with such primitive concepts such as type definition 06:56:40 incubot: give me a slap! 06:56:46 I just wish that there was some consistency -- if there was, then I could slap on some QoS and traffic shaping. 06:57:01 incubot: quantum 06:57:04 well, now that you know the ins and outs of american football, would you like to do my quantum mechanics homework? It should be easier. 06:57:11 lol 06:57:25 psiblue: So, by the time you are good enough to work in the Real World of Scheme, I think you'll find that this sort of worry goes away. It's style issues, it's agreement of interface, which is the same everywhere. 06:57:54 One thing Scheme does allow is a good deal of control over how you handle your divergence. You can use code from others even though it doesn't fit your style, and it will work. 06:58:21 For sure. I just worry about learning some kind of horrible style though 06:58:30 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has quit [Ping timeout: 258 seconds] 06:58:31 sladegen: Hey, don't be using dirty words in this channel. :-) 06:58:51 Tbh, before I logged in here, I thought everything basically had to be stored in lists, and that to create an object of type X you go (define X 06:59:01 psiblue: Hehe, well, just learn, and your bad style will show up pretty clearly. 06:59:03 *to create a type X 06:59:06 real world is a dirty mess ;) 06:59:30 also, having worked a fair bit in the php real world, I can say with certainty 06:59:37 that bad style really stands out. A lot. 06:59:40 Actually, I'm teaching a summer study group on "Advanced SCheme and high level language integration" 06:59:57 I don't want to be that guy who hands over the shitty code that everyone laughs at lol 07:00:01 It's teaching undergrads how to integrate things like Scheme with legacy systems. :-) 07:00:07 Nice :) 07:00:15 I should attend lol 07:00:22 psiblue: Well, the only way you can avoid that is to read good code. 07:00:37 psiblue: Hehe, um, well, it assumes that you know the basics of Scheme and C. :-) 07:00:55 psiblue: It's for the students who wanted to see how you would use Scheme in the real world. :-) 07:00:55 treize [~shaolin@c-67-181-44-97.hsd1.ca.comcast.net] has joined #scheme 07:01:27 They get to write a GUI chat client. :-D 07:01:36 So much fun. 07:01:48 that's cool 07:02:13 Do they just write the client? 07:02:24 And there's a magic server somewhere? 07:02:30 Or is it p2p 07:02:44 Either way sounds neat :) 07:02:51 psiblue: Yes, the protocol (ICB) is given to them, and it has to work with the servers that are out there. They have to integrate Scheme with C code and also write their code at a level that others can come in later and work with it. 07:03:03 It's an ICB chat client. 07:03:07 I did say legacy, after all. 07:03:16 As it turns out ICB is a great protocol for the purpose. 07:03:41 The first thing they learned is records. :-) 07:03:49 lol not sure how ridiculous this will make me sound, I'll just say it though: I don't know what ICB is 07:03:58 intercanalbonds? 07:04:10 Internet Citizen's Band, it's a chat protocol that slightly predates IRC. 07:04:20 It's still used today, but it has a smaller following. 07:04:40 Ah. Cool 07:04:54 There aren't any good cross-platform modern clients out there. 07:04:57 So... 07:05:04 I put the undergrads to work. ;-) 07:05:16 lol 07:05:23 Hey so does that make you a prof? 07:05:28 Hehe, nope. 07:05:32 TA? 07:05:32 Just a Grad student. 07:05:38 And it's an informal class. 07:05:42 They don't get graded. :-D 07:05:46 lol 07:05:58 Which is good for me, because only the students who care to be there show up. 07:06:11 Which means I get motivated, ready to learn students. :-) 07:06:13 Exactly; works out perfectly then :) 07:06:39 gravicappa [~gravicapp@80.90.116.82] has joined #scheme 07:07:06 psiblue: Anyways, I hope it all makes more sense to you. 07:07:36 psiblue: Just wait until you tackle macros. :-D 07:07:38 Heheheheheheheh. 07:07:40 Yeah - thanks again. 07:07:44 lol i don't like the way that sounds 07:07:53 Neh, they're not bad. 07:08:03 continue as saved! 07:08:16 Basically, since I know of very few other languages that even come close to Scheme macros, they can be quite a revelation to some. 07:08:28 psiblue: And continuations are also similar. 07:08:38 Sounds cool :) 07:08:56 Yeah, it is. :-) 07:08:58 Hey actually: 'records don't create objects, in the OOP sense. They encapsulate data, which is different than encapsulating data and methods.' - could you clarify this? 07:10:18 Right 07:10:24 So, an OOP object is an instantiation of a class. You access methods "through" the object; in a sense, the procedures that operate on the object are tied directly to that object. You can't call an object's methods from another object or on another object, usually. So, a class encapsulates both data and procedures for accessing that data. 07:10:32 Woops - didn't mean to type that 07:10:40 Wrong window :) 07:10:49 ("right") 07:11:07 -!- proq [~user@unaffiliated/proqesi] has quit [Ping timeout: 248 seconds] 07:11:13 On the other hand, a record specification doesn't have methods at all. It is only concerned with the data that it will encapsulate. 07:11:36 So then there really isn't a scheme equivalent of 'classes', is there 07:11:37 The procedures exist outside of the specification of the record and can be called on any arbitrary object, with varying results. 07:11:49 psiblue: There are many Scheme object systems. 07:11:58 psiblue: TinyCLOS is one. 07:12:13 Right - I realize that you could build one 07:12:17 (or use one that's built) 07:12:33 psiblue: So, there's no difference between one that is built and one that is built-in. 07:12:40 They're essentially at the same level. 07:12:43 ... 07:12:51 Hm 07:13:10 Yeah I guess that's true with Scheme then. 07:13:31 So, going with records, you might think of them as classes with just fields. 07:13:40 That's not strictly accurate, but it might help the imagry. 07:13:49 s/imagry/imagery/ 07:14:16 Yeah definitely. Actually that really helps with the understanding of records 07:14:22 *my understanding 07:14:30 They are strictly a data abstraction primitive, and procedures are defined elsewhere. 07:14:48 So what happens when you (define? 07:14:54 Is that a procedure? 07:14:55 or an object? 07:14:59 Neither. 07:15:02 :( 07:15:04 Not exactly. 07:15:16 Define is a special form that associates a value with a name or identifier. 07:15:29 Procedures are nothing special. 07:15:35 They are just values, like anything else. 07:16:09 Oh - right. I guess if you look at it that way, procedures are pretty much comprised of other procedures nested within them 07:16:19 So, the form (DEFINE X ) will bind the resulting value of evaluating to the identifier X in the current scope. 07:16:24 Since there's not that 'linear' sense you get with other languages 07:16:26 yeah 07:16:31 -!- treize [~shaolin@c-67-181-44-97.hsd1.ca.comcast.net] has left #scheme 07:16:37 Procedures consist of their code or instructions to run, and their closure. 07:17:21 How is it determined whether or not what you're defining is a procedure? 07:17:37 Certain forms return procedures as their results. 07:17:41 but classes are poor man's closures, so you can use procedures to implement real objects. 07:17:50 r5rs procedure? 07:17:50 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-6.html#%_idx_62 07:17:52 -rudybot:#scheme- http://tinyurl.com/cjqaje 07:17:57 If it happens that a reference is bound to a value that is a procedure, that reference is now informally called a procedure. 07:18:20 you never know for sure until you ask. 07:19:04 Strictly speaking, a reference, or an identifier in some scope is nothing but that; in practice, we say something like X is a vector, or a procedure; to mean that X is an identifier in such and such scope that is bound to a value that is a vector, or a procedure. 07:19:06 wait a procedure is a disjointed type...? 07:19:15 psiblue: yep. 07:19:29 though lambda is the canonical procedure creator. 07:19:32 Hmm. Well I guess that makes sense actually 07:19:32 psiblue: Moreover, procedures need not exist or be bound to specific names, may be bound to more than one name, &c. 07:20:51 Because Scheme is not statically typed, these sorts of things are all run-time questions. 07:20:55 Nice - I think I get the 'procedure as a disjointed type' idea then 07:21:21 In something like C, every identifier is associated with a type. 07:21:30 arcfide: since I have read your survey post on c.l.s: What are guardians and where can I read up on them? 07:21:33 In Scheme, ever identifier can refer to any type of value. 07:21:47 I did (define a (3)) (procedure? a) returned false, which was odd 07:21:54 But then I nested a lambda and it returned true 07:22:15 SO I guess in my first example, a basically referred directly to 3 07:22:17 C-Keen: 07:22:18 *So 07:22:22 arcfide: thanks! 07:22:45 And in my second, it referred to the lambda expression which was a procedure (?) 07:22:45 albacker [~eni@unaffiliated/enyx] has joined #scheme 07:22:47 psiblue: (define a (3)) should give you an error. 07:22:57 -!- snarkyboojum [~snarkyboo@110-174-43-105.static.tpgi.com.au] has quit [Quit: snarkyboojum] 07:23:02 Maybe i just typed it wrong here... 07:23:06 wow they almost come of age... those guardians. 07:23:33 Yeah 07:23:37 forget the brackets around 3 07:24:14 So, (DEFINE A 3) binds A to the value 3. 07:24:15 (define a 3) 07:24:23 (define (a) 3) 07:24:23 alcbacker: yes 07:24:39 That's what I had: (define a 3) 07:24:44 (define (a) 3) is a shorthand for (define a (lambda () 3)). 07:24:58 i was just writing that :) 07:25:09 :-) 07:25:11 arcfide: Yes, I was aware of that already - it said that in version 2 of that book :) 07:25:19 Hehe, yeah, that has been around for a while. 07:25:23 i learned it the hard way that in scheme everything (almost) expands to lambda expressions. 07:25:28 like define and let. 07:25:40 define expands to lambda expressions?? 07:25:50 psiblue: The shorthand version. 07:25:51 wait 07:25:54 Yeah 07:26:01 psiblue: DEFINE itself is a primitive form, generally. 07:26:30 psiblue: LET is a good example of how built-ins aren't really special. 07:26:31 Indeed; for a second I thought albacker meant that define expanded entirely to just lambda expressions 07:26:40 LET could be implemented just as well by the user. 07:26:42 (define (fun arg1 arg2) (do arg1 arg2)) (define fun (lambda (arg1 arg2) (do arg1 aarg2)) 07:27:03 albacker: define is not lambda! 07:27:09 (let (( a 2 )) (+ 3 a)) -> (lambda (a) (+ 3 a)) 2 07:27:09 psiblue: So, in something like (let () (define a 3) a) without too much optimization, it actually could. 07:27:32 sladegen, yes i know.. i meant that it could be expressed also with including a lambda 07:27:42 albacker: You're missing a parenthesis or two there. 07:27:42 my bad, 07:28:35 arcfide: You mean that that expression could also be done using a lambda expression, right? 07:29:08 ejs [~eugen@77.222.151.102] has joined #scheme 07:29:08 psiblue: I mean that an implementation could reasonably translate (let () (define a 3) a) into (let () ((lambda (a) a) 3)). 07:29:22 Ah 07:29:27 Alright that makes sense then. 07:29:32 albacker: no, define and lambda serve two totally different purposes. 07:29:53 psiblue: In most Scheme implementations, there are precious few things that are actually essential primitives that can't be implemented using other primitives. 07:30:04 define serves for creating global variables, no? 07:30:12 albacker: Global? 07:30:29 psiblue: Usually Lambda and Define are among the primtiives. 07:30:36 as in 'known in the environment where they are created' 07:30:53 define asserts bindings between names and values. 07:31:16 Oy, but I've been up for too long. 07:31:22 I think I need to be sleeping! 07:31:24 arcfide: That makes sense of/c. I read somewhere that in some implentations you actually can lambda lambda and define define, for interesting results 07:31:34 Yes. 07:31:36 :-) 07:31:53 But, as an interesting foray into macros... 07:32:08 lambda creates procedures... it just happens there is a syntax shorthand for binding procedures with define. 07:32:46 -!- jao [~jao@126.Red-88-22-186.staticIP.rima-tde.net] has quit [*.net *.split] 07:32:46 -!- doc_who [~doc_who@c-98-231-201-176.hsd1.md.comcast.net] has quit [*.net *.split] 07:32:46 -!- offby1 [~user@pdpc/supporter/monthlybyte/offby1] has quit [*.net *.split] 07:32:46 -!- kg4qxk [~bohanlon@pool-173-48-104-141.bstnma.fios.verizon.net] has quit [*.net *.split] 07:32:46 -!- saccade__ [~saccade_@COMBINATOR.MIT.EDU] has quit [*.net *.split] 07:32:47 -!- sloyd [haruken@station457.vo3.net] has quit [*.net *.split] 07:32:47 -!- jyujin [~mdeininge@vs166245.vserver.de] has quit [*.net *.split] 07:32:47 -!- C-Keen [ckeen@pestilenz.org] has quit [*.net *.split] 07:33:12 You might play with why (let () (define lambda 3) (define (a) 4) (cons (a) lambda)) => (4 . 3) instead of an error, if, indeed, (define (a) 4) => (define a (lambda () 4)). 07:33:15 -!- ejs [~eugen@77.222.151.102] has quit [Ping timeout: 240 seconds] 07:33:21 psiblue: ^^^ 07:33:48 lol 07:34:07 one sec... 07:34:27 oh 07:34:47 i guess lambda is being 'let-bound'? 07:35:01 that's interesting 07:35:12 speaking of portability... that probably wouldn't be very good. 07:35:22 (for portability) 07:35:35 Hehe, not really. if I had done (let () (define lambda 3) (define a (lambda () 4)) (cons (a) lambda)) I would have encountered an error. 07:35:47 Oh, that's fully portable. 07:36:00 In fact, it's fundamental. 07:36:24 Oh hold on... 07:36:27 misread it 07:36:35 arcfide: Admit it, you're just a lambda-fundie! 07:36:36 The key here is hygiene. 07:36:36 :) 07:36:46 Uh wha??? 07:36:52 haha 07:36:56 |09:37| ( arcfide) In fact, it's fundamental. 07:37:05 .... 07:37:08 :-P 07:37:20 lambda-fondle... 07:37:24 mmmm 07:37:44 Well what's actually happening then 07:37:55 Is a local variable being created called define 07:38:01 ? 07:38:03 make fondlets not defuns. 07:38:06 psiblue: Scheme macros are generally hygienic, which means that if I use LAMBDA in my macro, it's going to grab the LAMBDA that I intended, and not capture another lambda because the call site has lambda redefined. Instead, it will grab the lambda from where I defined it, instead. 07:38:09 *called lambda 07:38:30 ejs [~eugen@nat.ironport.com] has joined #scheme 07:38:32 Actually yeah I'm almost certain that's what it's doing. 07:38:42 So, when this stuff is expanded out, and if we tagged each identifier to indicate different scopes: 07:38:46 psiblue: macro preserves environment it has defined in... 07:38:55 Well that's good 07:38:58 jao [~jao@126.Red-88-22-186.staticIP.rima-tde.net] has joined #scheme 07:38:58 doc_who [~doc_who@c-98-231-201-176.hsd1.md.comcast.net] has joined #scheme 07:38:58 offby1 [~user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 07:38:58 kg4qxk [~bohanlon@pool-173-48-104-141.bstnma.fios.verizon.net] has joined #scheme 07:38:58 saccade__ [~saccade_@COMBINATOR.MIT.EDU] has joined #scheme 07:38:58 sloyd [haruken@station457.vo3.net] has joined #scheme 07:38:58 jyujin [~mdeininge@vs166245.vserver.de] has joined #scheme 07:38:58 C-Keen [ckeen@pestilenz.org] has joined #scheme 07:39:04 it has been defined in... 07:39:09 (let () (define lambda.0 3) (define a (lambda () 4)) (cons (a) lambda.0)) is what's happening. 07:39:45 Ahhh 07:39:52 So, when the (a) expands out into the lambda, it refers to the lambda when the macro was written, not the surrounding context. It's a sort of analog to lexical scoping in macros. But that's all for later. It's just to give you a taste. I'm being intentionally fuzzy. 07:40:02 lol :) 07:40:20 As if I haven't given you enough to ponder. 07:40:24 I don't think that's too fuzzy, really 07:40:48 sjamaan: It's rather fuzzy, I think. There's a lot more about wraps and what's really going on that isn't dealt with. 07:40:55 it's all fuzzy after few standards. 07:41:33 Anyways.... 07:41:37 I'm really going to sleep now. 07:41:38 Hehehe. 07:41:41 Good night everyone. 07:41:42 *sjamaan* makes a chicken & cheese wrap 07:41:46 gnight 07:41:48 nite 07:41:49 thanks again for all the help! 07:41:55 psiblue: Enjoy. :-) 07:42:11 those who aren't sleeping: http://pastebin.org/300842 07:42:33 -!- arcfide [~arcfide@adsl-99-75-51-152.dsl.bltnin.sbcglobal.net] has quit [Quit: Leaving.] 07:42:44 That's a snippet from tspl4 07:42:58 Is it good practice to do that? 07:43:31 yes 07:43:35 (Implementing a datatype and then using closure to provide procedures for it) 07:44:02 Well what about records and stuff like arcfide was talking about? 07:44:05 Usually one uses records for that 07:44:16 and use macros to abstract this pattern... like i said google scheming with objects. 07:44:28 But those are not standard, so I think that's why tspl doesn't mention it 07:45:03 this? http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/scheme/oop/yasos/swob.txt 07:45:04 -rudybot:#scheme- http://tinyurl.com/24hv2f 07:45:15 uhm 07:45:18 i find this piece of code very interesting : http://en.wikipedia.org/wiki/Closure_(computer_science)#Uses_of_closures 07:46:09 apparently xchat doesn't know URLs containing a bracket.. 07:46:50 global lets for modularly challenged ;) 07:48:09 albacker: What do you find interesting about it? 07:48:56 psiblue: if you implement your own object system you can be sure of portability... at least of your sanity. 07:49:12 sladegen: lol 07:53:25 the fact that the secret-message is part of the let and yet accesible after the last paranthese of let is closed. 07:53:29 Ah 07:53:38 Yeah that's because of closures 07:53:46 lol i guess that's why it was included in that article :) 07:53:59 That is, it creates a closure 07:54:35 I also found that very interesting when I learned about closures as well 07:54:39 ...earlier today. 07:54:40 lol 07:55:03 heh :) 07:57:58 Can someone point me in the right direction for using records in plt scheme? 07:58:08 I think this was already done, however I'm still not exactly sure 07:58:28 I'm looking at this right now: http://docs.plt-scheme.org/r6rs/index.html 07:59:26 Should I be using this: http://docs.plt-scheme.org/r6rs-lib-std/r6rs-lib-Z-H-7.html#node_idx_286 ? Or this: http://srfi.schemers.org/srfi-9/srfi-9.html? 07:59:40 masm [~masm@2.80.155.227] has joined #scheme 08:02:02 i think sicp is a good book to learn scheme from, even though i haven't read it :/ 08:04:18 toss a coin... but as it is srfi-9 may be more widespread, though deficient. actually the r6rs schism was also mostly about its records (though i haven't been able to determine exactly why for myself), i.e. it may be that r6rs records are the defincient one. perfect records being only in the minds of ERRR5RS heathans... 08:05:18 hmm 08:05:26 Well I guess it doesn't really matter then. 08:05:39 Would you recommend one over the other for a beginner schemer with an OOP background? 08:06:07 pavelludiq [~c28d2f82@gateway/web/freenode/x-wcbqimebopfddsue] has joined #scheme 08:10:32 no, like i said toss a coin or try both and use the one that suites your fancy better. 08:12:05 -!- psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has quit [Ping timeout: 240 seconds] 08:12:41 incubot: typing is for the sissies. 08:12:44 let is for sissies. real men code only in lambdas. 08:12:57 howgh! 08:12:58 incubot: lambdas? 08:13:01 If the variable is lexically visible in the scope of its use, that use is perfectly valid. In this case, ELT is bound in a lambda that encloses other lambdas, so those enclosed lambdas can refer to it. 08:13:22 incubot understands scope better than the elisp devs 08:14:03 -!- albacker [~eni@unaffiliated/enyx] has quit [Quit: Leaving] 08:14:28 it's all mccarthy's fault for not proving his code correct. 08:14:44 minion: chant 08:14:44 MORE WIDESPREAD 08:14:50 minion: <3 08:14:51 Sorry, I couldn't find anything in the database for ``<3''. 08:14:58 ...that is profound. 08:15:16 chandler: why have you created a child that knows not how to love? :( 08:16:09 doubly quoted love is more symbolic. 08:16:38 albacker: I've read SICP, and while my impression of it is positive overall as an introduction to intermediate programming concepts, I don't feel that it's a particularly good reference for an experienced functional/imperative programmer looking to learn scheme. 08:16:49 Ah, he left. 08:17:11 Obfuscate: I think an advanced functional programmer could probably just use the R5RS 08:17:24 Yes, or just get his hands dirty 08:17:27 I suppose that theory needs tested 08:18:47 soupdragon: I doubt it would be a very productive move, unless they're coming from a lisp background: I've found tspl4 to be helpful in this regard though. 08:19:24 wow this looks good! 08:19:28 I hadn't heard of tspl somehow 08:20:39 The odd part is that a google search for tspl returns the result for tspl3, and is seemingly unaware of tspl4. 08:21:01 *sladegen* learned scheme mostly by reading r5rs. perhaps it could be said that i failed to learn it still ;) 08:26:36 fradgers- [~fradgers-@5e02b45e.bb.sky.com] has joined #scheme 08:31:40 *Axioplase* learned scheme by writing scheme. 08:31:44 in scheme. 08:32:08 scheme is scheme is scheme ... 08:33:26 seangrove [~user@c-67-188-2-246.hsd1.ca.comcast.net] has joined #scheme 08:46:36 yeah, i really need to ressurect scsh or die trying. though almost 150k lines of code keeps intimidating me... 08:52:59 -!- toekutr [~toekutr@adsl-69-107-114-83.dsl.pltn13.pacbell.net] has quit [Quit: Leaving] 08:56:25 -!- sepult [~user@xdsl-78-34-105-214.netcologne.de] has quit [Ping timeout: 264 seconds] 08:56:51 -!- pavelludiq [~c28d2f82@gateway/web/freenode/x-wcbqimebopfddsue] has quit [Quit: Page closed] 08:57:05 -!- jao [~jao@126.Red-88-22-186.staticIP.rima-tde.net] has quit [Ping timeout: 265 seconds] 09:02:46 -!- mbohun [~mbohun@202.124.72.36] has quit [Quit: Leaving] 09:17:16 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Remote host closed the connection] 09:17:46 -!- eno [~eno@nslu2-linux/eno] has quit [Ping timeout: 260 seconds] 09:18:45 eno [~eno@nslu2-linux/eno] has joined #scheme 09:18:45 karljoh [fooki@h-73-135.A165.priv.bahnhof.se] has joined #scheme 09:29:20 schmir [~schmir@p54A923A7.dip0.t-ipconnect.de] has joined #scheme 09:30:16 -!- eno [~eno@nslu2-linux/eno] has quit [Ping timeout: 252 seconds] 09:30:35 -!- soupdragon [~quantum@unaffiliated/fax] has quit [Quit: soupdragon] 09:31:09 eno [~eno@nslu2-linux/eno] has joined #scheme 09:33:47 -!- schmir [~schmir@p54A923A7.dip0.t-ipconnect.de] has quit [Ping timeout: 260 seconds] 09:34:47 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Quit: +++ killed by SIGSEGV +++] 09:41:12 MichaelRaskin [~MichaelRa@pantagruel.mccme.ru] has joined #scheme 09:42:25 mbohun [~mbohun@ppp115-156.static.internode.on.net] has joined #scheme 09:43:20 jao [~jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 09:50:12 melba [~blee@unaffiliated/lazz0] has joined #scheme 09:53:32 SinDoc [~chatzilla@213.49.145.54] has joined #scheme 09:58:41 alvatar [~alvatar@63.149.220.87.dynamic.jazztel.es] has joined #scheme 10:06:24 -!- Axioplase is now known as Axioplase_ 10:08:22 -!- mbohun [~mbohun@ppp115-156.static.internode.on.net] has quit [Quit: Leaving] 10:10:03 -!- jmcphers [~jmcphers@218.185.108.156] has quit [Remote host closed the connection] 10:15:24 pookleblinky [~pookle@cpe-69-207-0-72.buffalo.res.rr.com] has joined #scheme 10:16:54 hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 10:25:47 pavelludiq [~quassel@87.246.14.242] has joined #scheme 10:28:38 -!- pavelludiq [~quassel@87.246.14.242] has quit [Remote host closed the connection] 10:28:44 -!- ejs [~eugen@nat.ironport.com] has quit [Ping timeout: 240 seconds] 10:28:47 pavelludiq [~quassel@87.246.14.242] has joined #scheme 10:34:15 ejs [~eugen@nat.ironport.com] has joined #scheme 10:36:23 -!- kar8nga [~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net] has quit [Remote host closed the connection] 10:40:54 -!- hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 10:41:21 hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 10:45:13 -!- SinDoc [~chatzilla@213.49.145.54] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539]] 10:46:21 -!- xwl_ [~user@esprx01x.nokia.com] has quit [Remote host closed the connection] 10:52:59 -!- fda314925 [~fda314925@211.239.124.232] has quit [Ping timeout: 248 seconds] 10:55:23 fda314925 [~fda314925@211.239.124.232] has joined #scheme 10:57:09 -!- rbarraud [~rbarraud@60-234-227-144.bitstream.orcon.net.nz] has quit [Remote host closed the connection] 11:00:15 sepult [~user@xdsl-84-44-143-229.netcologne.de] has joined #scheme 11:03:41 antoszka [~antoszka@unaffiliated/antoszka] has joined #scheme 11:06:43 pjb [~t@60.Red-80-34-44.staticIP.rima-tde.net] has joined #scheme 11:17:24 hkBst [~hkBst@gentoo/developer/hkbst] has joined #scheme 11:28:48 HG` [~HG@xdsl-92-252-19-240.dip.osnanet.de] has joined #scheme 11:30:15 leppie [~lolcow@196-210-146-237-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 11:31:08 stis [~stis@1-1-1-39a.veo.vs.bostream.se] has joined #scheme 11:48:39 snarkyboojum [~snarkyboo@110-174-43-105.static.tpgi.com.au] has joined #scheme 11:49:41 -!- ejs [~eugen@nat.ironport.com] has quit [Ping timeout: 245 seconds] 11:50:40 lisppaste: url 11:50:40 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 11:54:46 ejs [~eugen@77.222.151.102] has joined #scheme 11:55:05 i'm trying to come up with a TRACE macro which, when invoked on a procedure, rebinds that procedure with a meta-procedure; displaying inputs and outputs. 11:55:13 is this a reasonable implementation? 11:55:17 klutometis pasted "trace" at http://paste.lisp.org/display/111058 11:55:47 it's a little questionable, perhaps, in that it uses GENSYM to store the shadowed procedure. 11:56:01 klutometis: If this is chicken, you might want to look at the advice egg 11:57:20 sjamaan: oh, wow; fantastic that there's a more general solution. 12:00:31 -!- ejs [~eugen@77.222.151.102] has quit [Ping timeout: 245 seconds] 12:00:54 I think you forgot to rename old-f in your code. This one shadows an existing old-f 12:01:14 You're not using the result of the gensym though 12:01:24 You could just initialize old-f at #f 12:01:39 Or at f, since that's the very first thing you do :) 12:01:53 s/that/setting old-f to f/ 12:05:48 ejs [~eugen@nat.ironport.com] has joined #scheme 12:07:39 -!- seangrove [~user@c-67-188-2-246.hsd1.ca.comcast.net] has quit [Ping timeout: 260 seconds] 12:14:26 kar8nga [~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net] has joined #scheme 12:15:14 xwl_ [~user@esprx01x.nokia.com] has joined #scheme 12:23:17 sjamaan: good point 12:23:45 maybe i'll take a look at how felix implemented advice 12:30:19 klutometis annotated #111058 "Fix the shadowing?" at http://paste.lisp.org/display/111058#1 12:30:34 sjamaan: that new version fixes the shadowing, at least, doesn't it? 12:32:18 also, (rename 'f) could be used instead of (gensym); couldn't it? 12:32:58 klutometis annotated #111058 "rename for gensym" at http://paste.lisp.org/display/111058#2 12:33:38 yeah, that's better 12:34:42 now, to establish a global trace table so i can implement untrace 12:34:51 curious to see how felix did unadvise 12:43:23 -!- ejs [~eugen@nat.ironport.com] has quit [Ping timeout: 248 seconds] 12:48:47 ejs [~eugen@77.222.151.102] has joined #scheme 12:51:53 -!- ejs [~eugen@77.222.151.102] has quit [Client Quit] 12:52:19 hi! 12:52:40 do you know if there is any intention to keep the module system in the minimal version of scheme r7rs? 12:56:04 -!- Nshag [user@lns-bzn-28-82-250-151-180.adsl.proxad.net] has quit [Ping timeout: 240 seconds] 13:00:56 -!- masm [~masm@2.80.155.227] has quit [Ping timeout: 245 seconds] 13:09:29 Nshag [user@lns-bzn-25-82-254-179-97.adsl.proxad.net] has joined #scheme 13:10:13 langmartin [~user@exeuntcha2.tva.gov] has joined #scheme 13:16:55 masm [~masm@bl15-128-134.dsl.telepac.pt] has joined #scheme 13:20:01 albacker [~eni@unaffiliated/enyx] has joined #scheme 13:20:03 -!- pavelludiq [~quassel@87.246.14.242] has quit [Ping timeout: 276 seconds] 13:20:25 can someone please help me to understand why ((lambda (x) (x x)) (lambda (x) (x x))) creates something like a loop? 13:21:25 is it like, apply the first lambda to the second lambda, which makes a call to the first one.. etc? 13:21:46 -!- _danb_ [~user@124-171-25-183.dyn.iinet.net.au] has quit [Ping timeout: 245 seconds] 13:23:10 alvatar: are we even at the stage yet to determine intentions? 13:23:22 it seems like r7rs is still utterly nebulous; maybe i'm wrong. 13:26:40 albacker: that looks like the U combinator 13:27:06 albacker: I understand it as mutual recursion, but I can't prove :) 13:28:00 albacker: actually is not mutual recursion 13:28:07 toast` [~toast`@c-71-227-233-160.hsd1.wa.comcast.net] has joined #scheme 13:30:04 klutometis: yes, you are right... I was just curious if this was already decided because is one the biggest and most controversial features of r6rs 13:31:23 albacker: it tells the second to apply to itself, which will in turn apply to itself again... 13:32:09 albacker: this is the U combinator: (lambda (x) (x x)) 13:34:30 -!- langmartin [~user@exeuntcha2.tva.gov] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 13:34:52 does scheme recognize that the 1st and the 2nd lambda are the same thing? because if it did, then it would be somehow logical. like (define e (lambda (x) (x x))) (e e) 13:35:15 -!- hkBst [~hkBst@gentoo/developer/hkbst] has quit [Ping timeout: 258 seconds] 13:35:15 seangrove [~user@m540f36d0.tmodns.net] has joined #scheme 13:35:18 albacker: (define (U x) (x x)) (U U) 13:36:47 albacker: why not do a manual expansion for a couple iterations? you already have 0; 1 would be: ((lambda (x) ((lambda (x) (x x)) (lambda (x) (x x)))) (lambda (x) (x x))) 13:37:01 do you apprehend the fractal nature of the expansion? 13:37:12 klutometis: i always liked it better in that form, no defines 13:37:56 klutometis, i see, so you 'replace' the argument of the first lambda with the second lambda.. r 13:39:14 indeed; there's the additional question of normal-order vs. applicative-order eval, but that's the general idea 13:40:03 ok thanks 13:44:35 ejs [~eugen@25-254-95-178.pool.ukrtel.net] has joined #scheme 13:53:11 langmartin [~user@exeuntcha2.tva.gov] has joined #scheme 13:54:57 incubot: question is does the tree of uselessness bear any fruit... 13:55:00 let me remind you of the uselessness of turd polishing. 13:55:37 and they ate from the tree of turd. /me shivers. 13:55:49 Zarutian [~zarutian@194-144-84-110.du.xdsl.is] has joined #scheme 13:58:47 -!- xwl_ [~user@esprx01x.nokia.com] has quit [Remote host closed the connection] 14:02:38 xwl_ [~user@esprx01x.nokia.com] has joined #scheme 14:03:54 -!- sepult [~user@xdsl-84-44-143-229.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 14:04:32 -!- ejs [~eugen@25-254-95-178.pool.ukrtel.net] has quit [Quit: This computer has gone to sleep] 14:06:00 sepult [~user@xdsl-84-44-143-229.netcologne.de] has joined #scheme 14:08:40 ejs [~eugen@25-254-95-178.pool.ukrtel.net] has joined #scheme 14:10:15 -!- bgs000 is now known as bgs100 14:10:32 -!- Poeir [~Poeir@c-98-228-60-162.hsd1.il.comcast.net] has quit [Read error: Connection reset by peer] 14:11:41 Poeir [~Poeir@c-98-228-60-162.hsd1.il.comcast.net] has joined #scheme 14:15:14 -!- samth_away is now known as samth 14:16:22 Michael_Mohamed [~Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has joined #scheme 14:19:13 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Ping timeout: 272 seconds] 14:19:45 -!- Mohamdu [~Mohamdu@unaffiliated/mohamdu] has quit [Ping timeout: 265 seconds] 14:19:53 -!- brandelune [~suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has quit [Quit: brandelune] 14:27:56 antoszka [~antoszka@unaffiliated/antoszka] has joined #scheme 14:29:17 -!- toxygen [toxygen@stip-static-98.213-81-186.telecom.sk] has quit [Ping timeout: 240 seconds] 14:29:23 luz [~davids@139.82.89.70] has joined #scheme 14:31:09 antoszka1 [~antoszka@cl-142.waw-01.pl.sixxs.net] has joined #scheme 14:32:13 -!- antoszka1 [~antoszka@cl-142.waw-01.pl.sixxs.net] has quit [Client Quit] 14:37:29 toxygen [toxygen@stip-static-98.213-81-186.telecom.sk] has joined #scheme 14:42:44 -!- masm [~masm@bl15-128-134.dsl.telepac.pt] has quit [Ping timeout: 240 seconds] 14:48:59 b3r4 [~b3r4@187.114.192.135] has joined #scheme 14:49:12 -!- b3r4 [~b3r4@187.114.192.135] has quit [Remote host closed the connection] 14:51:31 xwl [~user@125.34.169.170] has joined #scheme 14:52:11 -!- seangrove [~user@m540f36d0.tmodns.net] has quit [Ping timeout: 245 seconds] 14:53:20 JoelMcCracken [~joelmccra@c-67-163-143-192.hsd1.pa.comcast.net] has joined #scheme 14:58:11 masm [~masm@bl15-130-139.dsl.telepac.pt] has joined #scheme 15:05:52 -!- sepult [~user@xdsl-84-44-143-229.netcologne.de] has quit [Read error: Connection reset by peer] 15:07:01 sepult [~user@xdsl-84-44-143-229.netcologne.de] has joined #scheme 15:16:13 -!- ejs [~eugen@25-254-95-178.pool.ukrtel.net] has quit [Ping timeout: 264 seconds] 15:16:29 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 15:20:50 ejs [~eugen@153-91-95-178.pool.ukrtel.net] has joined #scheme 15:28:46 -!- toast` [~toast`@c-71-227-233-160.hsd1.wa.comcast.net] has quit [Quit: toast`] 15:29:57 pavelludiq [~quassel@87.246.14.242] has joined #scheme 15:45:00 -!- alvatar [~alvatar@63.149.220.87.dynamic.jazztel.es] has quit [Quit: leaving] 15:49:12 Hi, I'm having a problem with exercise 1.22 in sicp. They want me to use a procedure they provided to search to get consecutive odd integers. Doing the exercise without their procedure shouldn't be a problem. However it seems impossible to me to do the exercise using their procedure without changing it, as it doesn't have a return value. 15:49:55 http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.5 15:51:24 -!- ejs [~eugen@153-91-95-178.pool.ukrtel.net] has quit [Quit: This computer has gone to sleep] 15:55:27 -!- xwl [~user@125.34.169.170] has quit [Ping timeout: 265 seconds] 15:57:01 -!- gravicappa [~gravicapp@80.90.116.82] has quit [Read error: Operation timed out] 16:01:57 ejs [~eugen@153-91-95-178.pool.ukrtel.net] has joined #scheme 16:03:55 -!- pjb [~t@60.Red-80-34-44.staticIP.rima-tde.net] has quit [Ping timeout: 248 seconds] 16:05:10 -!- karljoh [fooki@h-73-135.A165.priv.bahnhof.se] has quit [Ping timeout: 252 seconds] 16:06:43 -!- ejs [~eugen@153-91-95-178.pool.ukrtel.net] has quit [Ping timeout: 260 seconds] 16:11:59 ejs [~eugen@nat.ironport.com] has joined #scheme 16:12:45 -!- HG` [~HG@xdsl-92-252-19-240.dip.osnanet.de] has quit [Quit: Leaving.] 16:14:14 jonrafkind [~jon@crystalis.cs.utah.edu] has joined #scheme 16:14:16 jewel [~jewel@196-210-187-124-tbnb-esr-2.dynamic.isadsl.co.za] has joined #scheme 16:21:21 -!- jao [~jao@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Ping timeout: 245 seconds] 16:23:49 R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has joined #scheme 16:26:14 -!- sepult [~user@xdsl-84-44-143-229.netcologne.de] has quit [Remote host closed the connection] 16:28:36 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Quit: +++ killed by SIGSEGV +++] 16:29:55 -!- ejs [~eugen@nat.ironport.com] has quit [Ping timeout: 260 seconds] 16:33:41 -!- MichaelRaskin [~MichaelRa@pantagruel.mccme.ru] has quit [Remote host closed the connection] 16:34:12 sepult [~user@xdsl-84-44-143-229.netcologne.de] has joined #scheme 16:34:58 ejs [~eugen@153-91-95-178.pool.ukrtel.net] has joined #scheme 16:53:49 -!- ejs [~eugen@153-91-95-178.pool.ukrtel.net] has quit [Quit: This computer has gone to sleep] 16:53:57 karljoh: you're not supposed to use their procedures to generate odd integers. You're supposed to use their procedure (timed-prime-test n) to test for primality of consecutive odd integers. You're supposed to generate the odd sequence yourself. 17:00:39 -!- hadronzoo [~hadronzoo@ppp-70-251-90-138.dsl.rcsntx.swbell.net] has quit [Quit: hadronzoo] 17:14:10 proq [~user@unaffiliated/proqesi] has joined #scheme 17:17:37 -!- hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 17:28:26 -!- Nshag [user@lns-bzn-25-82-254-179-97.adsl.proxad.net] has quit [Ping timeout: 245 seconds] 17:29:08 jeff___ [~jdlouhy@zerowing.ccs.neu.edu] has joined #scheme 17:39:03 antoszka [~antoszka@unaffiliated/antoszka] has joined #scheme 17:40:28 incubot: aren't all odd integers prime? that's why they are called odd? aren't they? 17:40:31 Eh, our current and future prime ministers don't even speak French properly, so I think it doesn't matter much. 17:41:52 and each next prime minister is harder to factor out of the crowd... 17:48:09 Nshag [user@lns-bzn-21-82-64-65-239.adsl.proxad.net] has joined #scheme 17:55:09 saint_cypher [~saint_cyp@dsl081-240-057.sfo1.dsl.speakeasy.net] has joined #scheme 17:55:14 rdd [~rdd@c83-250-52-182.bredband.comhem.se] has joined #scheme 17:55:29 HG` [~HG@xdsl-92-252-53-99.dip.osnanet.de] has joined #scheme 18:09:05 -!- JoelMcCracken [~joelmccra@c-67-163-143-192.hsd1.pa.comcast.net] has quit [Quit: This computer has gone to sleep] 18:14:14 -!- HG` [~HG@xdsl-92-252-53-99.dip.osnanet.de] has quit [Quit: HG`] 18:14:34 r2q2 [~user@c-24-7-212-58.hsd1.il.comcast.net] has joined #scheme 18:30:03 toekutr [~toekutr@adsl-69-107-114-83.dsl.pltn13.pacbell.net] has joined #scheme 18:37:29 -!- r2q2 is now known as hef 18:37:31 -!- hef is now known as r2q2 18:40:06 JoelMcCracken [~joelmccra@pool-72-95-204-229.pitbpa.east.verizon.net] has joined #scheme 18:40:33 curi_ [~curi@adsl-99-114-139-86.dsl.pltn13.sbcglobal.net] has joined #scheme 18:42:25 choas [~lars@p5B0DCD8A.dip.t-dialin.net] has joined #scheme 18:44:48 Recur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has joined #scheme 18:48:41 alvatar [~alvatar@99.127.222.87.dynamic.jazztel.es] has joined #scheme 18:52:40 bombshelter13b [~bombshelt@76-10-149-209.dsl.teksavvy.com] has joined #scheme 18:53:46 -!- rdd [~rdd@c83-250-52-182.bredband.comhem.se] has quit [Remote host closed the connection] 18:59:21 why do i get 'no expression in body' for this : http://pastebin.com/8Vdg5gS2 18:59:45 r5rs:body: no expression in body in: (r5rs:body (define (incr y) (set! x (+ x y)) x)) 19:00:32 karljoh [fooki@h-73-135.A165.priv.bahnhof.se] has joined #scheme 19:02:56 bweaver [~user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 19:03:04 -!- Recur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has quit [Quit: This system is going down for poweroff RIGHT FREAKING NOW!!!] 19:03:16 -!- R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has quit [Quit: This system is going down for poweroff RIGHT FREAKING NOW!!!] 19:04:55 albacker, you have to have expressions in the body of a let, not just definitions 19:05:56 i see 19:05:58 thanks 19:20:42 davazp [~user@83.55.178.113] has joined #scheme 19:22:40 -!- langmartin [~user@exeuntcha2.tva.gov] has quit [Remote host closed the connection] 19:22:54 langmartin [~user@exeuntcha2.tva.gov] has joined #scheme 19:27:33 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 19:29:47 -!- saint_cypher [~saint_cyp@dsl081-240-057.sfo1.dsl.speakeasy.net] has quit [Ping timeout: 248 seconds] 19:33:56 -!- jeff___ is now known as dlouhy 19:37:37 -!- pookleblinky [~pookle@cpe-69-207-0-72.buffalo.res.rr.com] has quit [Quit: irl] 19:39:48 -!- alvatar [~alvatar@99.127.222.87.dynamic.jazztel.es] has quit [Quit: leaving] 19:48:57 -!- Poeir [~Poeir@c-98-228-60-162.hsd1.il.comcast.net] has quit [Read error: Connection reset by peer] 19:50:03 Poeir [~Poeir@c-98-228-60-162.hsd1.il.comcast.net] has joined #scheme 19:50:56 -!- jewel [~jewel@196-210-187-124-tbnb-esr-2.dynamic.isadsl.co.za] has quit [Ping timeout: 245 seconds] 19:52:44 -!- kar8nga [~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net] has quit [Read error: No route to host] 19:57:24 alvatar [~alvatar@99.127.222.87.dynamic.jazztel.es] has joined #scheme 20:07:01 virl [~virl__@chello062178085149.1.12.vie.surfer.at] has joined #scheme 20:08:51 -!- r2q2 [~user@c-24-7-212-58.hsd1.il.comcast.net] has quit [Ping timeout: 245 seconds] 20:18:47 saint_cypher [~saint_cyp@dsl081-240-057.sfo1.dsl.speakeasy.net] has joined #scheme 20:20:45 -!- toekutr [~toekutr@adsl-69-107-114-83.dsl.pltn13.pacbell.net] has quit [Quit: Leaving] 20:22:48 -!- alvatar [~alvatar@99.127.222.87.dynamic.jazztel.es] has quit [Read error: Connection reset by peer] 20:35:40 ysph [~user@24-181-93-165.dhcp.leds.al.charter.com] has joined #scheme 20:37:22 -!- copumpkin [~copumpkin@94.166.38.91] has quit [Quit: copumpkin] 20:37:48 copumpkin [~copumpkin@94.166.38.91] has joined #scheme 20:40:34 alvatar [~alvatar@211.119.20.95.dynamic.jazztel.es] has joined #scheme 20:45:54 -!- davazp [~user@83.55.178.113] has quit [Read error: Connection reset by peer] 20:58:24 -!- alvatar [~alvatar@211.119.20.95.dynamic.jazztel.es] has quit [Ping timeout: 240 seconds] 21:00:12 alvatar [~alvatar@115.127.222.87.dynamic.jazztel.es] has joined #scheme 21:00:29 -!- albacker [~eni@unaffiliated/enyx] has quit [Quit: Leaving] 21:00:47 jmcphers [~jmcphers@218.185.108.156] has joined #scheme 21:06:06 -!- alvatar [~alvatar@115.127.222.87.dynamic.jazztel.es] has quit [Quit: leaving] 21:09:29 -!- melba [~blee@unaffiliated/lazz0] has quit [Read error: Connection reset by peer] 21:12:05 melba [~blee@unaffiliated/lazz0] has joined #scheme 21:13:53 MononcQc [~Ferd@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 21:14:53 -!- sepult [~user@xdsl-84-44-143-229.netcologne.de] has quit [Read error: Connection reset by peer] 21:16:05 sepult [~user@xdsl-87-79-63-204.netcologne.de] has joined #scheme 21:18:03 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has quit [Remote host closed the connection] 21:18:25 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 21:19:04 -!- langmartin [~user@exeuntcha2.tva.gov] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 21:20:12 Kizaru [~plaz@pool-173-76-170-157.bstnma.fios.verizon.net] has joined #scheme 21:21:24 brandelune [~suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has joined #scheme 21:22:04 -!- minion [~minion@common-lisp.net] has quit [Ping timeout: 240 seconds] 21:23:04 -!- specbot [~specbot@common-lisp.net] has quit [Ping timeout: 240 seconds] 21:23:41 -!- lisppaste [~lisppaste@common-lisp.net] has quit [Ping timeout: 258 seconds] 21:24:37 -!- luz [~davids@139.82.89.70] has quit [Quit: Client exiting] 21:27:19 -!- ysph [~user@24-181-93-165.dhcp.leds.al.charter.com] has quit [Ping timeout: 260 seconds] 21:33:06 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Read error: Connection reset by peer] 21:33:45 jonrafkind [~jon@crystalis.cs.utah.edu] has joined #scheme 21:34:28 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Quit: +++ killed by SIGSEGV +++] 21:35:40 -!- dfkjjkfd [~paulh@214-13-ftth.onsnetstudenten.nl] has quit [Quit: Lost terminal] 21:38:15 -!- curi_ [~curi@adsl-99-114-139-86.dsl.pltn13.sbcglobal.net] has quit [Quit: Leaving] 21:38:15 -!- stis [~stis@1-1-1-39a.veo.vs.bostream.se] has quit [Read error: Connection reset by peer] 21:44:11 hypercube31 [~hypercube@253.240.33.65.cfl.res.rr.com] has joined #scheme 21:51:36 r2q2 [~user@c-24-7-212-58.hsd1.il.comcast.net] has joined #scheme 22:01:04 -!- copumpkin is now known as pumpkin 22:09:50 kar8nga [~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net] has joined #scheme 22:10:08 -!- kar8nga [~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net] has quit [Remote host closed the connection] 22:10:14 kar8nga [~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net] has joined #scheme 22:11:58 -!- r2q2 [~user@c-24-7-212-58.hsd1.il.comcast.net] has quit [Remote host closed the connection] 22:13:33 antoszka [~antoszka@unaffiliated/antoszka] has joined #scheme 22:15:56 arcfide [~arcfide@adsl-99-75-51-152.dsl.bltnin.sbcglobal.net] has joined #scheme 22:16:46 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Read error: Connection reset by peer] 22:17:43 jonrafkind [~jon@crystalis.cs.utah.edu] has joined #scheme 22:36:10 -!- sepult [~user@xdsl-87-79-63-204.netcologne.de] has quit [Read error: Connection reset by peer] 22:36:37 jao [~user@126.Red-88-22-186.staticIP.rima-tde.net] has joined #scheme 22:37:17 sepult [~user@xdsl-87-79-63-204.netcologne.de] has joined #scheme 22:39:55 -!- hypercube31 [~hypercube@253.240.33.65.cfl.res.rr.com] has quit [Quit: Leaving] 22:42:30 -!- kar8nga [~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net] has quit [Remote host closed the connection] 22:45:33 psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has joined #scheme 22:45:46 -!- psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has quit [Client Quit] 22:47:35 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Disconnected by services] 22:47:44 sladegen [~nemo@unaffiliated/sladegen] has joined #scheme 22:47:49 -!- cmatei [~cmatei@95.76.18.242] has quit [Ping timeout: 276 seconds] 22:49:33 R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has joined #scheme 23:01:05 cmatei [~cmatei@95.76.18.242] has joined #scheme 23:06:29 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Disconnected by services] 23:06:38 sladegen [~nemo@unaffiliated/sladegen] has joined #scheme 23:10:05 _danb_ [~user@124-171-25-183.dyn.iinet.net.au] has joined #scheme 23:10:54 -!- samth is now known as samth_away 23:10:55 -!- bweaver [~user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:16:12 -!- choas [~lars@p5B0DCD8A.dip.t-dialin.net] has quit [Quit: leaving] 23:18:09 -!- JoelMcCracken [~joelmccra@pool-72-95-204-229.pitbpa.east.verizon.net] has quit [Quit: This computer has gone to sleep] 23:18:16 hse-hoens [~test@nd-129-74-109-181.nat.nd.edu] has joined #scheme 23:18:21 -!- pavelludiq [~quassel@87.246.14.242] has quit [Read error: Connection reset by peer] 23:19:13 JoelMcCracken [~joelmccra@pool-72-95-204-229.pitbpa.east.verizon.net] has joined #scheme 23:21:28 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Disconnected by services] 23:21:37 sladegen [~nemo@unaffiliated/sladegen] has joined #scheme 23:23:15 psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has joined #scheme 23:23:59 Hi everyone. So, I'd like to try out r6rs 23:24:15 I'm using DrScheme, and have tried to do this: #!r6rs (define (x) 0) x 23:24:31 It gives me an error about an expected import. 23:24:42 What am I supposed to be doing? 23:25:02 reading docs ?-) 23:25:12 lol 23:25:28 I did try that. Can you point me in the direction of some docs? 23:25:49 Couldn't really find anything (probably because I don't know where to look/what to look for) 23:26:30 http://docs.plt-scheme.org/r6rs/Running_Top-Level_Programs.html ? 23:26:37 (import rnrs) 23:26:57 erm... (import (rnrs)) 23:27:21 and you prolly want (x) not bare x. 23:27:49 # may be what is expected. 23:28:06 sladegen: Thanks! That worked 23:28:16 Can you explain what (import rnrs does)? 23:28:22 what's rnrs? 23:28:32 it imports basic scheme 23:28:43 Ah. Well that makes sense 23:29:02 So does it essentially load in the scheme implementation? 23:29:13 If not what's it loading exactly? 23:30:06 it loads bindings... and semanthics. well the language you read about in the r6rs report. 23:30:24 What's there before I load it? 23:30:48 *import it 23:31:30 nothing i presume... well a stub of the metalanguage to deal with environments. 23:31:40 -!- fradgers- [~fradgers-@5e02b45e.bb.sky.com] has left #scheme 23:31:49 -!- R3cur51v3 [~Recursive@173-30-222-57.client.mchsi.com] has quit [Ping timeout: 264 seconds] 23:32:23 Ah. Cool - so (import rnrs) does basically load scheme in then? 23:33:14 for example in scheme48 module language about language is not part of scheme. and there are actually two meta-languages. 23:33:33 -!- melba [~blee@unaffiliated/lazz0] has quit [Quit: i want to be formal but i'm here to party] 23:33:33 -!- ToxicFrog [~ToxicFrog@76-10-139-177.dsl.teksavvy.com] has left #scheme 23:35:15 Ah. 23:35:29 Alright that makes sense then I think. In any case I can now write programs so that's good at least :) 23:35:30 Thanks! 23:35:45 *sladegen* nods. supposition being that you can load totally different language. like typed scheme or something that doesn't look like lisp at all. but i never familiariazed myself with r6rs library language to explain to you exactly how (and if) it could work. 23:36:36 it's a folk legand that it's possible in scheme48... 23:36:51 Well thanks again - gonna go do some scheming. I might pop back in later with some more ?'s :) 23:37:27 -!- psiblue [~psiblue@wnpgmb1302w-ad01-202-88.dynamic.mts.net] has quit [Quit: You will be surrounded by luxury.] 23:37:29 cheers. 23:38:50 incubot: 42 23:38:51 rbarraud [~rbarraud@60-234-227-144.bitstream.orcon.net.nz] has joined #scheme 23:39:20 incubot: six times seven 23:39:23 You can try reading the seven thousand lines of reference implementation built partially with SYNTAX-CASE itself, but I don't recommend it. 23:39:49 not-ed. 23:41:24 Mohamdu [~Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has joined #scheme 23:41:39 -!- aehrisch [~aehrisch@vhost.knauel.org] has quit [Quit: ZNC - http://znc.sourceforge.net] 23:42:08 aehrisch [~aehrisch@vhost.knauel.org] has joined #scheme 23:44:10 -!- Michael_Mohamed [~Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has quit [Ping timeout: 272 seconds] 23:55:08 -!- masm [~masm@bl15-130-139.dsl.telepac.pt] has quit [Quit: Leaving.] 23:58:59 -!- karljoh [fooki@h-73-135.A165.priv.bahnhof.se] has quit [Ping timeout: 260 seconds]