2014-10-22T00:00:49Z lrs scratches head 2014-10-22T00:01:27Z cjh`_: (intersec2 set1 set2 res)) 2014-10-22T00:01:32Z cjh`_: you dont have any res in that scope. 2014-10-22T00:02:34Z lrs: I dont get it 2014-10-22T00:02:55Z lrs: http://pastebin.com/bmQpZpWp 2014-10-22T00:02:56Z lrs: :S 2014-10-22T00:03:04Z lrs: Im supposed to change the paranthesis right? 2014-10-22T00:03:18Z cjh`_: no. 2014-10-22T00:03:22Z cjh`_: on the line (intersec2 set1 set2 res))) what is res set to? 2014-10-22T00:04:15Z lrs: set to? 2014-10-22T00:04:42Z cjh`_: what is the value of the variable 'res' on that line? 2014-10-22T00:04:51Z cjh`_: you are passing the value of res to intersec2, so what is it? 2014-10-22T00:06:23Z lrs: zero? 2014-10-22T00:06:23Z lrs: S 2014-10-22T00:06:24Z lrs: :S 2014-10-22T00:09:57Z cjh`_: it isn't defined, so it will cause an error. 2014-10-22T00:11:19Z lrs: How do i define it? 2014-10-22T00:11:28Z lrs scratches head 2014-10-22T00:12:19Z Riastradh joined #scheme 2014-10-22T00:14:38Z davexunit quit (Read error: No route to host) 2014-10-22T00:15:03Z lrs: cjh`_, I have no idea 2014-10-22T00:17:42Z aap__ joined #scheme 2014-10-22T00:18:47Z lrs: cjh`_, If i dont have res 2014-10-22T00:18:49Z lrs: It gives me an error 2014-10-22T00:19:52Z lrs: http://pastebin.com/bmQpZpWp 2014-10-22T00:20:33Z bjz quit (*.net *.split) 2014-10-22T00:20:33Z eagleflo quit (*.net *.split) 2014-10-22T00:20:33Z aap_ quit (*.net *.split) 2014-10-22T00:20:33Z tessier quit (*.net *.split) 2014-10-22T00:20:33Z nitrix quit (*.net *.split) 2014-10-22T00:20:33Z dan64 quit (*.net *.split) 2014-10-22T00:20:34Z Nizumzen quit (*.net *.split) 2014-10-22T00:20:34Z Vutral quit (*.net *.split) 2014-10-22T00:20:34Z MrSavage quit (*.net *.split) 2014-10-22T00:20:34Z MichaelRaskin quit (*.net *.split) 2014-10-22T00:20:34Z asumu quit (*.net *.split) 2014-10-22T00:20:34Z teiresias quit (*.net *.split) 2014-10-22T00:20:34Z rtra quit (*.net *.split) 2014-10-22T00:20:34Z leppie quit (*.net *.split) 2014-10-22T00:20:35Z haroldwu quit (*.net *.split) 2014-10-22T00:20:35Z jrslepak quit (*.net *.split) 2014-10-22T00:20:35Z gluegadget quit (*.net *.split) 2014-10-22T00:20:35Z akkad quit (*.net *.split) 2014-10-22T00:20:35Z DerGuteMoritz quit (*.net *.split) 2014-10-22T00:20:35Z ineiros quit (*.net *.split) 2014-10-22T00:20:35Z C-Keen quit (*.net *.split) 2014-10-22T00:20:36Z kilimanjaro quit (*.net *.split) 2014-10-22T00:20:36Z twem2_ quit (*.net *.split) 2014-10-22T00:20:36Z cjh`_ quit (*.net *.split) 2014-10-22T00:21:04Z lrs quit (Quit: Leaving) 2014-10-22T00:21:36Z lrs joined #scheme 2014-10-22T00:25:55Z Nizumzen joined #scheme 2014-10-22T00:25:55Z Vutral joined #scheme 2014-10-22T00:25:55Z MrSavage joined #scheme 2014-10-22T00:25:55Z MichaelRaskin joined #scheme 2014-10-22T00:25:55Z asumu joined #scheme 2014-10-22T00:25:55Z teiresias joined #scheme 2014-10-22T00:25:55Z leppie joined #scheme 2014-10-22T00:25:55Z haroldwu joined #scheme 2014-10-22T00:25:55Z jrslepak joined #scheme 2014-10-22T00:25:55Z gluegadget joined #scheme 2014-10-22T00:25:55Z akkad joined #scheme 2014-10-22T00:25:55Z DerGuteMoritz joined #scheme 2014-10-22T00:25:55Z ineiros joined #scheme 2014-10-22T00:25:55Z C-Keen joined #scheme 2014-10-22T00:25:55Z kilimanjaro joined #scheme 2014-10-22T00:25:55Z twem2_ joined #scheme 2014-10-22T00:25:55Z cjh`_ joined #scheme 2014-10-22T00:26:12Z lrs: cjh`_, You still alive? 2014-10-22T00:26:14Z akkad quit (Max SendQ exceeded) 2014-10-22T00:26:14Z Vutral quit (Max SendQ exceeded) 2014-10-22T00:26:14Z Nizumzen quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2014-10-22T00:26:44Z eagleflo joined #scheme 2014-10-22T00:26:44Z tessier joined #scheme 2014-10-22T00:26:44Z nitrix joined #scheme 2014-10-22T00:26:44Z dan64 joined #scheme 2014-10-22T00:26:45Z rtra joined #scheme 2014-10-22T00:26:46Z cjh`_: last time i checked. 2014-10-22T00:27:03Z dan64 quit (Max SendQ exceeded) 2014-10-22T00:27:23Z dan64 joined #scheme 2014-10-22T00:27:41Z lrs: http://pastebin.com/bmQpZpWp 2014-10-22T00:28:14Z cjh`_: lrs: i think you have the information you need to solve the final problem 2014-10-22T00:28:34Z joneshf-laptop quit (Remote host closed the connection) 2014-10-22T00:28:46Z cjh`_: (intersec2 set1 set2 res)) 2014-10-22T00:28:54Z cjh`_: res is undefined 2014-10-22T00:30:02Z lrs: undefined where? 2014-10-22T00:30:06Z lrs: Or uh 2014-10-22T00:30:41Z lrs: cjh`_, I dont get it? Its defined in intersec2 2014-10-22T00:30:51Z lrs: And then I call intersec2 in intersec 2014-10-22T00:30:54Z akkad_ joined #scheme 2014-10-22T00:30:59Z lrs: And then i use set1 set 2 res 2014-10-22T00:31:05Z lrs: or do i only use set1 set2 2014-10-22T00:31:08Z lrs: I don get it 2014-10-22T00:34:30Z cjh`_: lrs: so res is defined only inside of intersec2 2014-10-22T00:34:45Z cjh`_: lrs: but your call (intersec2 set1 set2 res) is outside of intersec2, it is inside intersec 2014-10-22T00:34:52Z cjh`_: lrs: and inside intersec there is no such variable called 'res' 2014-10-22T00:35:27Z lrs: right 2014-10-22T00:35:34Z lrs: But if i dont write res there and does nothing 2014-10-22T00:35:46Z cjh`_: you need to pass a value as the 3rd argument yes 2014-10-22T00:35:56Z cjh`_: but 'res' is undefined, it doesnt have a value, so it is an error. 2014-10-22T00:36:01Z haroldwu quit (Ping timeout: 260 seconds) 2014-10-22T00:36:06Z cjh`_: what value should you be passing as the 3rd argument? 2014-10-22T00:36:10Z lrs: So whats the 3rd argument? makeset()? 2014-10-22T00:36:20Z Vutral joined #scheme 2014-10-22T00:36:22Z cjh`_: would that work? 2014-10-22T00:36:31Z lrs: doubt it 2014-10-22T00:36:36Z cjh`_: if you have an idea, try it in an interpeter 2014-10-22T00:36:38Z cjh`_: run the code and see 2014-10-22T00:36:43Z lrs: It does 2014-10-22T00:37:17Z cjh`_: does it past the test? 2014-10-22T00:37:28Z lrs: Yes! 2014-10-22T00:37:40Z cjh`_: s/past/pass/ ; typing today is terrible 2014-10-22T00:37:59Z cjh`_: lrs: more importantly, do you understand it? 2014-10-22T00:38:26Z lrs: Nope 2014-10-22T00:42:01Z lrs: cjh`_, Or 2014-10-22T00:42:20Z lrs: cjh`_, I just replace the one that I had to use as () with one 2014-10-22T00:42:23Z lrs: So I kind of get it 2014-10-22T00:42:40Z lrs: Now im gonna comment it 2014-10-22T00:43:05Z cjh`_: update the paste :) 2014-10-22T00:43:22Z cjh`_: once you are finished. 2014-10-22T00:48:05Z daviid` joined #scheme 2014-10-22T00:48:10Z lrs: cjh`_, http://pastebin.com/bmQpZpWp 2014-10-22T00:48:24Z lrs: I put a (?) or a ? at the places im not really sure how describe what you do 2014-10-22T00:49:25Z daviid quit (Ping timeout: 244 seconds) 2014-10-22T00:50:11Z cjh`_: so what we are doing with the (car set2) and (cdr set2) is stepping through set 2 2014-10-22T00:50:34Z cjh`_: each time we see if it's car (first element) is in the set, we then perform an action, and then keep looking through the rest (the cdr) of set2 2014-10-22T00:50:38Z cjh`_: if set2 is empty, we have finished 2014-10-22T00:51:09Z cjh`_: so we are using cdr as we have already looked at the car, there is no point looking at it again, otherwise we will go on forever. 2014-10-22T00:56:08Z daviid` quit (Ping timeout: 272 seconds) 2014-10-22T00:58:22Z jhao quit (Remote host closed the connection) 2014-10-22T00:59:18Z jhao joined #scheme 2014-10-22T01:00:25Z robot-beethoven joined #scheme 2014-10-22T01:01:53Z askatasuna joined #scheme 2014-10-22T01:07:38Z karswell` joined #scheme 2014-10-22T01:13:34Z karswell` is now known as karswell 2014-10-22T01:20:49Z Vutral quit (Ping timeout: 260 seconds) 2014-10-22T01:22:44Z tobik quit (Ping timeout: 245 seconds) 2014-10-22T01:22:44Z lrs: so what we are doing with the (car set2) and (cdr set2) is stepping through set 2014-10-22T01:22:53Z lrs: What line are you llooking at then cjh`_ 2014-10-22T01:23:18Z askatasuna quit (Quit: WeeChat 1.0.1) 2014-10-22T01:23:36Z cjh`_: your question marks around (intersec2 set1 (cdr set2) (cons (car set2) res))) 2014-10-22T01:24:10Z tobik joined #scheme 2014-10-22T01:28:33Z lrs: so we are using cdr as we have already looked at the car, there is no point looking at it again, otherwise we will go on forever. 2014-10-22T01:28:42Z lrs: That is cdr set2 2014-10-22T01:28:46Z lrs: before cons? 2014-10-22T01:28:52Z Vutral joined #scheme 2014-10-22T01:29:25Z cjh`_: yes, I was trying to explain that usage. 2014-10-22T01:34:21Z MrSavage quit (Ping timeout: 260 seconds) 2014-10-22T01:34:44Z Niac joined #scheme 2014-10-22T01:36:46Z kongtomorrow quit 2014-10-22T01:37:04Z davexunit joined #scheme 2014-10-22T01:38:00Z vanila quit (Quit: Leaving) 2014-10-22T01:44:35Z lrs: cjh`_, http://pastebin.com/bmQpZpWp 2014-10-22T01:44:39Z lrs: I have one ? left 2014-10-22T01:44:44Z lrs: And would you add anything to that? 2014-10-22T01:45:33Z chupish joined #scheme 2014-10-22T01:48:41Z cjh`_: if you understand it all, the no. 2014-10-22T01:48:44Z cjh`_: then no* 2014-10-22T01:48:44Z jusss joined #scheme 2014-10-22T01:48:57Z lrs: cjh`_, Cool 2014-10-22T01:49:18Z lrs: Would you mind looking at another description for naother function i did, but this one is a bit different and uses difference 2014-10-22T01:49:20Z lrs: for sets 2014-10-22T01:49:40Z cjh`_: I cannot sorry, I have to get back to my job :) 2014-10-22T01:50:15Z jhao quit (Remote host closed the connection) 2014-10-22T01:50:15Z jusss quit (Read error: Connection reset by peer) 2014-10-22T01:50:30Z jusss joined #scheme 2014-10-22T01:50:36Z jhao joined #scheme 2014-10-22T01:50:45Z lrs: cjh`_, Cool 2014-10-22T01:50:49Z lrs: Thanks alot though 2014-10-22T01:50:50Z lrs: Really 2014-10-22T01:50:53Z lrs: Helped me alot 2014-10-22T01:51:17Z cjh`_: no problem, I just hope you learned from it :) 2014-10-22T01:51:29Z lrs: Yeah, i gathered alot of knowledge 2014-10-22T01:53:59Z chupish is now known as chupish_ 2014-10-22T01:54:23Z chupish_ is now known as _chupish_ 2014-10-22T02:02:58Z lrs quit (Ping timeout: 255 seconds) 2014-10-22T02:04:54Z pgimeno joined #scheme 2014-10-22T02:16:57Z jusss quit (Read error: Connection reset by peer) 2014-10-22T02:17:10Z jusss joined #scheme 2014-10-22T02:25:09Z MrSavage joined #scheme 2014-10-22T02:33:39Z jhao quit (Ping timeout: 255 seconds) 2014-10-22T02:40:28Z jhao joined #scheme 2014-10-22T02:44:52Z jlongste` joined #scheme 2014-10-22T02:44:52Z jlongster quit (Ping timeout: 240 seconds) 2014-10-22T02:45:25Z offby1` joined #scheme 2014-10-22T02:56:19Z offby1 quit (Disconnected by services) 2014-10-22T02:56:33Z offby1` is now known as offby1 2014-10-22T02:56:33Z offby1 quit (Changing host) 2014-10-22T02:56:33Z offby1 joined #scheme 2014-10-22T03:10:49Z mrowe is now known as mrowe_away 2014-10-22T03:14:01Z mrowe_away is now known as mrowe 2014-10-22T03:19:41Z davexunit quit (Quit: Later) 2014-10-22T03:31:59Z _chupish_ is now known as _chupish_`zzz 2014-10-22T03:33:14Z Riastradh quit (Ping timeout: 246 seconds) 2014-10-22T03:51:36Z MichaelRaskin quit (Remote host closed the connection) 2014-10-22T04:02:35Z jhao quit (Ping timeout: 258 seconds) 2014-10-22T04:09:36Z joneshf-laptop joined #scheme 2014-10-22T04:15:21Z rtra quit (Ping timeout: 260 seconds) 2014-10-22T04:16:01Z _chupish_`zzz quit (Ping timeout: 246 seconds) 2014-10-22T04:16:28Z rtra joined #scheme 2014-10-22T04:17:25Z kongtomorrow joined #scheme 2014-10-22T04:20:34Z alezost joined #scheme 2014-10-22T04:40:30Z es917 joined #scheme 2014-10-22T04:40:36Z MichaelRaskin joined #scheme 2014-10-22T04:41:09Z es917 quit (Client Quit) 2014-10-22T04:43:15Z jlongste` quit (Ping timeout: 255 seconds) 2014-10-22T04:53:09Z pyon joined #scheme 2014-10-22T04:54:45Z germ13 joined #scheme 2014-10-22T05:09:23Z phipes joined #scheme 2014-10-22T05:09:34Z jlongste` joined #scheme 2014-10-22T05:13:04Z frkout quit (Quit: Leaving...) 2014-10-22T05:13:14Z frkout joined #scheme 2014-10-22T05:14:07Z phipes quit (Client Quit) 2014-10-22T05:17:15Z jlongste` quit (Ping timeout: 246 seconds) 2014-10-22T05:20:01Z MrSavage quit (Ping timeout: 258 seconds) 2014-10-22T05:21:04Z zacts- joined #scheme 2014-10-22T05:22:05Z araujo quit (Read error: Connection reset by peer) 2014-10-22T05:22:35Z araujo joined #scheme 2014-10-22T05:22:36Z araujo quit (Changing host) 2014-10-22T05:22:36Z araujo joined #scheme 2014-10-22T05:38:17Z kongtomorrow quit (Read error: Connection reset by peer) 2014-10-22T05:38:23Z kongtomo_ joined #scheme 2014-10-22T05:38:36Z DGASAU quit (Remote host closed the connection) 2014-10-22T05:39:42Z DGASAU joined #scheme 2014-10-22T05:41:55Z oleo quit (Quit: Verlassend) 2014-10-22T05:44:30Z tcsc_ quit (Quit: computer sleeping) 2014-10-22T05:46:17Z tcsc_ joined #scheme 2014-10-22T05:46:41Z hiroakip joined #scheme 2014-10-22T05:47:06Z tcsc_ quit (Remote host closed the connection) 2014-10-22T05:55:02Z aap__ is now known as aap_ 2014-10-22T06:04:48Z hiroakip quit (Ping timeout: 244 seconds) 2014-10-22T06:06:39Z phipes joined #scheme 2014-10-22T06:11:39Z jlongste` joined #scheme 2014-10-22T06:16:13Z jlongste` quit (Ping timeout: 260 seconds) 2014-10-22T06:29:08Z DGASAU quit (Remote host closed the connection) 2014-10-22T06:30:21Z DGASAU joined #scheme 2014-10-22T06:48:50Z kongtomo_ quit 2014-10-22T06:57:44Z kongtomorrow joined #scheme 2014-10-22T06:57:55Z jusss quit (Remote host closed the connection) 2014-10-22T07:01:33Z frkout_ joined #scheme 2014-10-22T07:04:05Z bevan joined #scheme 2014-10-22T07:04:21Z frkout quit (Ping timeout: 246 seconds) 2014-10-22T07:05:51Z jusss joined #scheme 2014-10-22T07:09:12Z wingo joined #scheme 2014-10-22T07:17:51Z mutley89 joined #scheme 2014-10-22T07:20:47Z phipes quit (Quit: Textual IRC Client: www.textualapp.com) 2014-10-22T07:21:04Z c74d quit (Remote host closed the connection) 2014-10-22T07:23:04Z jusss quit (Remote host closed the connection) 2014-10-22T07:24:33Z c74d joined #scheme 2014-10-22T07:30:18Z fridim_ joined #scheme 2014-10-22T07:37:37Z DGASAU quit (Read error: Connection reset by peer) 2014-10-22T07:38:51Z DGASAU joined #scheme 2014-10-22T07:40:21Z jewel joined #scheme 2014-10-22T07:49:54Z zacts- quit (Remote host closed the connection) 2014-10-22T07:55:19Z bevan quit (Read error: Connection reset by peer) 2014-10-22T07:57:39Z leo2007 quit (Ping timeout: 255 seconds) 2014-10-22T07:59:45Z stepnem joined #scheme 2014-10-22T08:00:05Z b4283 joined #scheme 2014-10-22T08:00:25Z leo2007 joined #scheme 2014-10-22T08:00:45Z frkout_ quit (Remote host closed the connection) 2014-10-22T08:00:59Z frkout joined #scheme 2014-10-22T08:02:54Z phipes joined #scheme 2014-10-22T08:03:06Z jusss joined #scheme 2014-10-22T08:11:36Z jlongste` joined #scheme 2014-10-22T08:17:30Z b4283 quit (Read error: Connection reset by peer) 2014-10-22T08:18:06Z jlongste` quit (Ping timeout: 256 seconds) 2014-10-22T08:20:41Z wilfredh joined #scheme 2014-10-22T08:25:35Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-10-22T08:30:27Z phipes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2014-10-22T08:45:20Z ventonegro joined #scheme 2014-10-22T08:48:45Z lrs joined #scheme 2014-10-22T08:49:49Z kongtomorrow quit 2014-10-22T08:52:18Z ELLIOTTCABLE joined #scheme 2014-10-22T08:53:08Z zacts- joined #scheme 2014-10-22T08:56:18Z jusss quit (Remote host closed the connection) 2014-10-22T08:56:31Z germ13 quit (Ping timeout: 255 seconds) 2014-10-22T08:56:57Z germ13 joined #scheme 2014-10-22T09:02:56Z frkout quit (Remote host closed the connection) 2014-10-22T09:03:22Z frkout joined #scheme 2014-10-22T09:05:12Z ELLIOTTCABLE quit (Quit: Lost terminal) 2014-10-22T09:07:34Z hiyosi_ joined #scheme 2014-10-22T09:07:35Z ELLIOTTCABLE joined #scheme 2014-10-22T09:09:45Z hiyosi quit (Ping timeout: 260 seconds) 2014-10-22T09:12:34Z bjz joined #scheme 2014-10-22T09:16:17Z kongtomorrow joined #scheme 2014-10-22T09:16:33Z kongtomorrow quit (Client Quit) 2014-10-22T09:30:14Z b4283 joined #scheme 2014-10-22T09:33:58Z Niac quit (Remote host closed the connection) 2014-10-22T09:43:26Z gravicappa joined #scheme 2014-10-22T09:46:03Z lrs quit (Quit: Leaving) 2014-10-22T09:46:03Z Tbone139 quit (Ping timeout: 246 seconds) 2014-10-22T10:18:27Z pnkfelix joined #scheme 2014-10-22T10:31:21Z b4283 quit (Read error: Connection reset by peer) 2014-10-22T10:46:19Z germ13 quit (Ping timeout: 255 seconds) 2014-10-22T10:47:32Z mrowe is now known as mrowe_away 2014-10-22T10:49:18Z MichaelRaskin quit (Quit: MichaelRaskin) 2014-10-22T10:53:02Z Vutral__ joined #scheme 2014-10-22T10:53:21Z Vutral_ quit (Ping timeout: 260 seconds) 2014-10-22T10:53:37Z BossKonaSegwaY quit (Ping timeout: 245 seconds) 2014-10-22T10:56:18Z mrowe_away is now known as mrowe 2014-10-22T11:07:06Z BossKonaSegwaY joined #scheme 2014-10-22T11:28:09Z BossKonaSegwaY quit (Ping timeout: 245 seconds) 2014-10-22T11:29:56Z pyon quit (Quit: "work") 2014-10-22T11:37:41Z bjz quit (Quit: Textual IRC Client: www.textualapp.com) 2014-10-22T11:41:53Z BossKonaSegwaY joined #scheme 2014-10-22T11:43:49Z bjz joined #scheme 2014-10-22T11:44:44Z Nizumzen joined #scheme 2014-10-22T11:48:20Z jeapostrophe joined #scheme 2014-10-22T11:50:42Z wilfredh quit (Quit: Connection closed for inactivity) 2014-10-22T11:53:30Z lrs joined #scheme 2014-10-22T11:54:09Z lrs: I have a problem doing a cartesian product function 2014-10-22T11:55:10Z leo2007 quit (Remote host closed the connection) 2014-10-22T11:55:23Z lrs: Im not sure how to do it 2014-10-22T11:55:27Z lrs: Do-to-each or map 2014-10-22T11:55:29Z lrs: :S 2014-10-22T11:55:43Z lrs scratches head 2014-10-22T11:56:02Z ecraven: lrs: describe a bit more closely what you want to do 2014-10-22T11:56:17Z lrs: > (cart-product (make-set '(a b c)) (make-set '(1 2))) ==> ((a . 1) (a . 2) (b . 1) (b . 2) (c . 1) (c . 2)) 2014-10-22T11:57:20Z pjb` joined #scheme 2014-10-22T11:57:38Z leo2007 joined #scheme 2014-10-22T11:57:58Z z0d quit (Ping timeout: 256 seconds) 2014-10-22T11:58:07Z lrs: ecraven, I guess theres different way of approaching this problem 2014-10-22T11:58:11Z lrs: make-set is already defined 2014-10-22T11:58:29Z ecraven: (apply append (map (lambda (a) (map (lambda (b) (cons a b)) '(a b c))) '(1 2))) 2014-10-22T11:58:49Z ecraven: that is rather bad code though :) 2014-10-22T11:58:59Z pjb quit (Ping timeout: 245 seconds) 2014-10-22T11:59:01Z lrs: That seems awkwardly short o.o 2014-10-22T11:59:13Z z0d joined #scheme 2014-10-22T11:59:13Z z0d quit (Changing host) 2014-10-22T11:59:13Z z0d joined #scheme 2014-10-22T11:59:23Z ecraven: well, you need to parameterize the sets, if it should work for any number of sets, you need to modify it more 2014-10-22T12:02:29Z Vutral quit (Ping timeout: 260 seconds) 2014-10-22T12:08:03Z Vutral joined #scheme 2014-10-22T12:08:07Z ecraven: lrs: I can't think of a much shorter version right now :) 2014-10-22T12:08:24Z jusss joined #scheme 2014-10-22T12:08:24Z lrs: I thought I would need two definitions atleast 2014-10-22T12:08:29Z lrs: But I dont get what apply does 2014-10-22T12:11:49Z vanila joined #scheme 2014-10-22T12:15:08Z lrs: ecraven, Could you explain a bit more what you are doing? 2014-10-22T12:15:17Z lrs: And what you mean by "parametrize" it 2014-10-22T12:19:26Z wilfredh joined #scheme 2014-10-22T12:20:01Z haroldwu joined #scheme 2014-10-22T12:24:55Z ecraven: lrs: do you understand what map does? 2014-10-22T12:25:25Z ecraven: simplified, apply means "apply the function to the following list", so (apply + '(1 2 3)) is the same as (+ 1 2 3) 2014-10-22T12:25:40Z lrs: Is apply do-to-each ? 2014-10-22T12:25:50Z ecraven: if you have the data as a list (as in our case, a result of map), but want to apply a function to it, that's the way to go 2014-10-22T12:26:01Z ecraven: no. work from the inside out 2014-10-22T12:26:05Z ecraven: start with the innermost map 2014-10-22T12:26:30Z lrs: Ah oh 2014-10-22T12:26:32Z lrs: So it says 2014-10-22T12:26:57Z lrs: Apply the function append 2014-10-22T12:27:03Z lrs: on 2014-10-22T12:27:12Z lrs: (map (lambda (a) 2014-10-22T12:27:12Z lrs: (map (lambda (b) 2014-10-22T12:27:12Z lrs: (cons a b)) 2014-10-22T12:29:46Z DGASAU quit (Remote host closed the connection) 2014-10-22T12:31:03Z DGASAU joined #scheme 2014-10-22T12:32:00Z LeoNerd: (curry cons) <.< >.> 2014-10-22T12:33:51Z defanor quit (Ping timeout: 244 seconds) 2014-10-22T12:35:57Z mrowe is now known as mrowe_away 2014-10-22T12:36:36Z taylanub: I'll start writing SRFIs in R7RS. https://gitorious.org/taylan-scheme/srfi/ Contributions welcome. I'll probably be very slow and inactive most of the time. :) 2014-10-22T12:38:12Z haroldwu quit (Changing host) 2014-10-22T12:38:12Z haroldwu joined #scheme 2014-10-22T12:38:14Z vanila: taylanub, I would like to contribute :) 2014-10-22T12:38:21Z vanila: oh wait SRFis 2014-10-22T12:38:35Z vanila: aren't theymostly implementations specific 2014-10-22T12:38:50Z vanila: but i will write some R7RS libs 2014-10-22T12:38:51Z vanila: eventually 2014-10-22T12:39:30Z taylanub: vanila: many SRFI have a reference implementation in *R5RS* 2014-10-22T12:40:47Z taylanub: granted, they're not libraries, and are often quite dirty. see my notes in the project description. 2014-10-22T12:48:49Z mrowe_away is now known as mrowe 2014-10-22T12:49:13Z lrs: ecraven, Im stuck, im really bad at thi 2014-10-22T12:49:17Z lrs: How would i parametrize it? 2014-10-22T12:51:07Z ecraven: taylanub: which implementation do you use to test them? 2014-10-22T12:51:38Z ecraven: lrs: try it out with different values, play around with it in your scheme interpreter. 2014-10-22T12:52:04Z lrs: Well, I need it so that instead of different values 2014-10-22T12:52:16Z lrs: I need it so that a = set1 b = set2 2014-10-22T12:52:22Z lrs: Right now its random 2014-10-22T12:52:29Z lrs: I mean its already defined 2014-10-22T12:52:34Z lrs: So I need to parametrize it 2014-10-22T12:52:35Z ecraven: so the opposite of random :) 2014-10-22T12:52:50Z ecraven: make it a function, replace the two fixed sets by parameters to your function 2014-10-22T12:53:31Z lrs: I tried setting (cart-product a) (cart-product b) 2014-10-22T12:53:41Z lrs: BUt do you ean im gonna make a new definition in that function or 2014-10-22T12:55:00Z aftershave joined #scheme 2014-10-22T12:55:22Z vanila quit (Remote host closed the connection) 2014-10-22T12:58:28Z lrs: ecraven, I did (define (ab) '(abc)) and (define (ac) '(a b c)) 2014-10-22T12:58:51Z lrs: And tried to replace those values that were hardcoded with ab and ac 2014-10-22T12:58:54Z lrs: But that doesnt work 2014-10-22T12:59:02Z lrs: Do I need to define it inside the function or something 2014-10-22T12:59:21Z ecraven: do you understand what the difference between (define (ab) '(abc)) and (define ab '(abc)) is? 2014-10-22T12:59:29Z ecraven: sorry, have to go, back in an hour or so 2014-10-22T12:59:37Z lrs: Hmm, I need to use ab maybe 2014-10-22T13:00:18Z lrs: It just says not allowed in expression context 2014-10-22T13:05:12Z davexunit joined #scheme 2014-10-22T13:07:44Z bjz quit (Ping timeout: 244 seconds) 2014-10-22T13:08:30Z taylanub: ecraven: would be best to try in as many as possible which advertise R7RS compatibility. that isn't very many so far, but should grow soon. Chibi implements R7RS-small already, right? Guile, Chicken, and Gauche have it underway; I'd expect it from Racket too sooner or later... 2014-10-22T13:09:16Z aftershave quit (Quit: Textual IRC Client: www.textualapp.com) 2014-10-22T13:13:49Z lrs: http://pastebin.com/DAuJrHAr 2014-10-22T13:13:51Z lrs: Halp 2014-10-22T13:17:11Z MichaelRaskin joined #scheme 2014-10-22T13:31:13Z oleo joined #scheme 2014-10-22T13:37:56Z bjz joined #scheme 2014-10-22T13:39:34Z aretecode quit (Ping timeout: 255 seconds) 2014-10-22T13:41:49Z aretecode joined #scheme 2014-10-22T13:42:37Z taylanub quit (Disconnected by services) 2014-10-22T13:43:00Z taylanub joined #scheme 2014-10-22T13:46:40Z jlongste` joined #scheme 2014-10-22T13:48:29Z amgarching joined #scheme 2014-10-22T13:53:30Z lrs: I did it ^^ 2014-10-22T13:58:27Z MrSavage joined #scheme 2014-10-22T13:59:28Z lrs: http://pastebin.com/rD2VHJ9Z 2014-10-22T13:59:32Z lrs: Now I need to 2014-10-22T13:59:36Z lrs: uh 2014-10-22T13:59:39Z lrs: Descrie what I do 2014-10-22T14:00:33Z taylanub: lrs: rhetoric question: when you read that code, can you quickly tell what the second argument to `map' is, for either of the `map' calls? 2014-10-22T14:00:56Z lrs: for either of the map calls.. Hmmm 2014-10-22T14:01:19Z germ13 joined #scheme 2014-10-22T14:01:23Z taylanub: in other words, if someone else glances over your code, do you think they will be able to immediately tell what list `map' is being called on? 2014-10-22T14:01:51Z lrs: No I dont think so 2014-10-22T14:02:00Z lrs: The second argument to map is (map (lambda (a) 2014-10-22T14:02:00Z lrs: (map (lambda (b) 2014-10-22T14:02:00Z lrs: (cons a b)) b)) a))) 2014-10-22T14:02:02Z lrs: Right? 2014-10-22T14:02:03Z lrs: :S 2014-10-22T14:02:06Z taylanub: so improve that :) put the 'a' and the 'b' arguments on their own lines 2014-10-22T14:02:26Z lrs: Ah 2014-10-22T14:02:31Z lrs: Lower map - b 2014-10-22T14:02:34Z lrs: Upper map - a 2014-10-22T14:03:22Z lrs: taylanub, If i comment this, can you check what i write and tell me if im wrong or not 2014-10-22T14:04:03Z taylanub: If you make your code more readable, yes. For example: 2014-10-22T14:04:03Z taylanub: (map (lambda (a) 2014-10-22T14:04:03Z taylanub: (map (lambda (b) 2014-10-22T14:04:03Z taylanub: (cons a b)) 2014-10-22T14:04:10Z taylanub: b)) 2014-10-22T14:04:13Z taylanub: a) 2014-10-22T14:04:20Z lrs: Thats exactl what I did :P 2014-10-22T14:04:26Z taylanub: nice 2014-10-22T14:05:57Z taylanub: did your tutor request you to comment the code in detail? because otherwise this code is quite self-apparent for someone who can read Scheme well, and wouldn't require any comments. especially the procedure name 'cart-product' makes the intent very obvious 2014-10-22T14:06:25Z lrs: Well, its mainly for myself and also I this is an assigment that I am supposed to explain eveyrthing in detail 2014-10-22T14:06:58Z mrowe is now known as mrowe_away 2014-10-22T14:07:37Z Black-Irish joined #scheme 2014-10-22T14:12:25Z gravicappa quit (Ping timeout: 255 seconds) 2014-10-22T14:12:27Z lrs: taylanub, http://pastebin.com/rD2VHJ9Z Heres a crappy attempt 2014-10-22T14:13:27Z daviid joined #scheme 2014-10-22T14:15:56Z taylanub: lrs: you wrote you apply append to multiple *pairs*. that's wrong; you apply append to multiple *lists*. append takes lists, not pairs. 2014-10-22T14:16:12Z lrs: Correct 2014-10-22T14:18:07Z taylanub: lrs: 'map' takes a list (the second argument), a procedure (first argument), and returns a list which consists of the elements of the first list processed by the given procedure. similar to a bijective function: https://en.wikipedia.org/wiki/Bijection#mediaviewer/File:Bijection.svg 2014-10-22T14:19:03Z taylanub: so when you have a list of numbers, (1 2 3), and you do (map double (list 1 2 3)), you'll get (2 4 6). 2014-10-22T14:19:19Z lrs: taylanub, Right, its a linear transformation thing 2014-10-22T14:19:35Z lrs: But I dont really get what its doing in this problem 2014-10-22T14:20:01Z taylanub: lrs: the trick is that the inner 'lambda' form refers to the parameter of the outer 'lambda' form... 2014-10-22T14:20:58Z lrs: taylanub, Right 2014-10-22T14:21:01Z vanila joined #scheme 2014-10-22T14:21:01Z lrs: but what is that doing :S 2014-10-22T14:21:07Z lrs: How would you describe that 2014-10-22T14:21:40Z taylanub: lrs: what does the inner 'lambda' do? can you define it as a separate procedure outside of this whole thing, then use it like that? 2014-10-22T14:21:57Z Black-Irish: For a beginner wanting to go through SICP and The Little Schemer, which is the best implementation (or version?) to use? What about text editors, compiler/interpreter? Using Python (v2), I just load up Sublime Text and a terminal window and start coding. So I'm looking for the Scheme-equivalent. 2014-10-22T14:22:34Z taylanub: Black-Irish: Emacs is the preferred Lisp environment but it has a nontrivial learning curve. 2014-10-22T14:22:43Z taylanub: Black-Irish: (I mean as an editor/IDE.) 2014-10-22T14:23:05Z taylanub: Black-Irish: for a Scheme implementation, Racket would probably be recommended to beginners and for SICP readers 2014-10-22T14:23:34Z lrs: taylanub, The inner lambda , i dont really get 2014-10-22T14:23:40Z taylanub: Black-Irish: #racket is a big IRC channel too, though I'm not sure how welcome Scheme-beginner questions are there (as opposed to just Racket-beginner questions) 2014-10-22T14:23:50Z lrs: It maps cons a b on b 2014-10-22T14:23:51Z lrs: :S 2014-10-22T14:24:16Z taylanub: lrs: well do you know what (cons x y) returns? 2014-10-22T14:24:23Z lrs: a pair 2014-10-22T14:24:30Z lrs: (x y) 2014-10-22T14:24:32Z taylanub: lrs: then the mapping returns a list of ... ? 2014-10-22T14:24:49Z lrs: I dont know.. it maps lamba b on a b ? 2014-10-22T14:25:25Z taylanub: lrs: just generally, what kind of list would (map (lambda (x) (cons blah blub)) some-list) return? 2014-10-22T14:26:15Z lrs: lambda (x) (cons blah blub) 2014-10-22T14:26:20Z lrs: Not sure what is happening there 2014-10-22T14:26:32Z taylanub: don't you know what (lambda (x) (cons a b)) means? 2014-10-22T14:26:35Z lrs: Is it just a function that does cons a b 2014-10-22T14:26:36Z lrs: ? 2014-10-22T14:26:40Z taylanub: yes 2014-10-22T14:27:08Z Zeedox quit (Quit: WeeChat 1.1-dev) 2014-10-22T14:27:21Z lrs: Alright 2014-10-22T14:27:39Z lrs: So map (lambda b) ( cons a b) b makes a function that creates cons a b 2014-10-22T14:27:43Z lrs: And then applies that to b 2014-10-22T14:29:27Z iterrogo joined #scheme 2014-10-22T14:29:41Z Black-Irish: taylanub: I will look into Racket and Emacs. Thank you 2014-10-22T14:30:10Z taylanub: lrs: applies what to b? 2014-10-22T14:30:16Z lrs: (cons a b) 2014-10-22T14:30:17Z lrs: :S 2014-10-22T14:30:27Z taylanub: lrs: what do you mean "apply"? one can't apply a pair. 2014-10-22T14:30:32Z lrs: THats the thing 2014-10-22T14:30:34Z lrs: I dont get that 2014-10-22T14:30:59Z taylanub: oh, you think it calls that function to get what it should apply to every element of the list? 2014-10-22T14:31:12Z lrs: Kind of 2014-10-22T14:31:20Z lrs: Or 2014-10-22T14:31:20Z ventonegro quit (Remote host closed the connection) 2014-10-22T14:31:24Z taylanub: that's wrong that. that function *is* what it applies to every element of the list 2014-10-22T14:31:30Z taylanub: *that's wrong then 2014-10-22T14:31:32Z lrs: I think it creates a function that does cons a b, and then you apply it on b 2014-10-22T14:31:37Z lrs: the parameter b 2014-10-22T14:31:51Z lrs: But why b? 2014-10-22T14:31:58Z ventonegro joined #scheme 2014-10-22T14:32:02Z taylanub: you do realize there are two different variables called 'b' here? 2014-10-22T14:32:14Z lrs: There are? 2014-10-22T14:32:26Z lrs: Ah, its b1 and b2 2014-10-22T14:32:32Z lrs: Or uh 2014-10-22T14:32:46Z lrs: Ah right, that b is define in lambda map 2014-10-22T14:32:49Z lrs: Its a local b 2014-10-22T14:33:07Z taylanub: right. 1: (lambda (b) ... here 'b' is the argument ...) 2: outside of that '(lambda ...)', there is the previous 'b'. you might want to rename one of them to make it clearer what each is 2014-10-22T14:33:13Z lrs: Ok, so the a and b in the map are local define 2014-10-22T14:33:19Z lrs: Maybe i can change them to b1 or something (?) 2014-10-22T14:33:29Z taylanub: give them good names that say what they are 2014-10-22T14:33:44Z taylanub: for example, every time 'map' calls your (lambda (a) ...), *what* is a? 2014-10-22T14:34:16Z ventonegro quit (Remote host closed the connection) 2014-10-22T14:34:27Z lrs: I changed it to (lambda (a2) ( map lambda (b2) (cons a2 b2) 2014-10-22T14:34:28Z DGASAU` joined #scheme 2014-10-22T14:34:32Z taylanub: not good 2014-10-22T14:34:37Z lrs: It works :S 2014-10-22T14:35:01Z taylanub: of course it will work. you could also call the variables schnitzel and chickensoup and it would still work 2014-10-22T14:35:08Z lrs: (map (lambda (a2) (map (lambda (b2) (cons a2 b2)) 2014-10-22T14:35:08Z taylanub: but it won't be very clear 2014-10-22T14:35:39Z DGASAU quit (Ping timeout: 245 seconds) 2014-10-22T14:36:25Z taylanub: lrs: I repeat my question: every time 'map' calls your (lambda (a) ...), what is 'a' there? 2014-10-22T14:36:42Z DGASAU` is now known as DGASAU 2014-10-22T14:38:00Z lrs: taylanub, What do you mean 2014-10-22T14:38:16Z lrs: Its a list 2014-10-22T14:38:23Z taylanub: no 2014-10-22T14:38:53Z lrs: Im not sure I know what you mean 2014-10-22T14:38:59Z taylanub: (map (lambda (x) (whatever)) x) ; what is the outer 'x', and what is the inner 'x'? 2014-10-22T14:39:23Z lrs: x os tje piter x ? 2014-10-22T14:39:34Z lrs: *x is the outer x 2014-10-22T14:39:57Z lrs: lambda x is the inner x 2014-10-22T14:40:01Z taylanub: heh, slipping a row on the keyboard; happens to me too :P 2014-10-22T14:40:07Z lrs: :P 2014-10-22T14:40:31Z lrs: Looks lie dutch 2014-10-22T14:40:32Z taylanub: lrs: what is the type of the value bound to the outer 'x' variable? 2014-10-22T14:40:48Z lrs: a list? a parameter? 2014-10-22T14:40:53Z taylanub: a list. 2014-10-22T14:41:01Z redeemed_ joined #scheme 2014-10-22T14:41:19Z taylanub: what is the type of the value bound to the inner 'x' variable, every time 'map' calls the (lambda (x) (whatever)) procedure? 2014-10-22T14:41:36Z lrs: elements? 2014-10-22T14:41:38Z lrs: cons? 2014-10-22T14:50:24Z jusss quit (Quit: ERC Version 5.2 (IRC client for Emacs)) 2014-10-22T14:50:42Z wilfredh quit (Quit: Connection closed for inactivity) 2014-10-22T14:51:07Z lrs: taylanub, true or false? cons? elements? 2014-10-22T14:51:10Z lrs: Im not really sure 2014-10-22T14:51:28Z ecraven: lrs: try it in your Scheme 2014-10-22T14:51:42Z taylanub: lrs: was away .. 2014-10-22T14:51:54Z taylanub: lrs: yes, it's an element of the list every time, which could be of any type. ("element" is not a type, of course) 2014-10-22T14:51:57Z ventonegro joined #scheme 2014-10-22T14:52:15Z lrs: Ok, so when it starts creating lambda (x) 2014-10-22T14:52:17Z taylanub: lrs: so you might want to rename your parameters such that they reflect what they are, just for readability 2014-10-22T14:52:19Z lrs: It goes through the elements 2014-10-22T14:52:29Z lrs: What would you call it? element-a? 2014-10-22T14:52:43Z taylanub: a-element or element-of-a or so 2014-10-22T14:52:44Z DGASAU quit (Ping timeout: 245 seconds) 2014-10-22T14:53:00Z taylanub: (one wouldn't really do this in "real" Scheme code because it's very obvious, but just for the sake of learning...) 2014-10-22T14:53:08Z DGASAU joined #scheme 2014-10-22T14:53:13Z lrs: Yeah, it makes more sense 2014-10-22T14:53:50Z lrs: (map (lambda (b-element) ;(cons a-element b-element)) 2014-10-22T14:53:55Z lrs: (map (lambda (b-element) (cons a-element b-element)) 2014-10-22T14:54:06Z taylanub: better 2014-10-22T14:54:08Z lrs: map the element of b 2014-10-22T14:54:22Z lrs: in (cons a-element b -element) 2014-10-22T14:54:38Z lrs: So it says add b-element in the cons of a-element b-element) ? 2014-10-22T14:54:40Z taylanub: one usually says "map the list" and not "map the element of the list" 2014-10-22T14:55:40Z taylanub: it just says map the list 'b' to a list of (cons a-element b-element). note that 'a-element' is the SAME a-element every time here, but 'b-element' is the next element of b every time. then this whole thing is repeated for other 'a-element' values 2014-10-22T14:57:43Z lrs: the a-element comes later on righjt 2014-10-22T14:58:09Z lrs: But if its "map the list"... shouldnt it be lambda b-element :S 2014-10-22T14:58:32Z mrowe_away is now known as mrowe 2014-10-22T15:01:19Z lrs scratches head 2014-10-22T15:02:49Z redeemed_ quit (Quit: q) 2014-10-22T15:03:44Z taylanub: you map one list to a new (newly created) list 2014-10-22T15:04:18Z taylanub: using the procedure argument for each element 2014-10-22T15:06:07Z lrs: Right 2014-10-22T15:06:10Z lrs: I htink I get that 2014-10-22T15:06:21Z lrs: Im just curious, what is happening mathematicall, systemwise or something 2014-10-22T15:06:31Z lrs: How it is being compiled 2014-10-22T15:06:39Z lrs: And when it stops 2014-10-22T15:06:51Z lrs: Its not recursive 2014-10-22T15:06:55Z bjz quit (Read error: Connection reset by peer) 2014-10-22T15:06:56Z lrs: So it just applies stuff : 2014-10-22T15:07:24Z bjz joined #scheme 2014-10-22T15:11:24Z theseb joined #scheme 2014-10-22T15:18:17Z taylanub: lrs: it's not recursive, but it's a nested iteration. you have the inner mapping process, which goes through the list 'b' every time, but this whole process is in turn done for every element of 'a'. 2014-10-22T15:18:22Z Nizumzen quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2014-10-22T15:18:25Z pgimeno left #scheme 2014-10-22T15:19:20Z lrs: taylanub, So a uses the definition of b? 2014-10-22T15:20:12Z taylanub: so say the first element of 'a' is x, and say 'b' is (1 2 3). so for the first iteration you get ((x 1) (x 2) (x 3)). then it repeats for the second element of 'a', say y. ((y 1) (y 2) (y 3)). and so on. in the end you append these: (append '((x 1) (x 2) (x 3)) '((y 1) (y 2) (y 3)) ...) 2014-10-22T15:23:35Z lrs: ???? 2014-10-22T15:23:42Z lrs: Its supposed to be x 1 x 2 x 3 2014-10-22T15:23:49Z lrs: (x 1) (x 2) (x 3) 2014-10-22T15:24:13Z taylanub: what? 2014-10-22T15:24:29Z lrs: so say the first element of 'a' is x, and say 'b' is (1 2 3). 2014-10-22T15:24:31Z lrs: ah ok 2014-10-22T15:24:32Z lrs: Sorry 2014-10-22T15:25:05Z lrs: Ok 2014-10-22T15:25:23Z lrs: taylanub, but why is (map (lambda (a-element) 2014-10-22T15:25:23Z lrs: (map (lambda (b-element) (cons a-element b-element)) 2014-10-22T15:25:34Z lrs: Why cant I, I dont know, do this separate somehow 2014-10-22T15:25:45Z taylanub: do what separate? 2014-10-22T15:25:47Z lrs: Why do I need do map a, and then have the map of b inside map a? 2014-10-22T15:26:11Z taylanub: because you want to do for each element of the list a, and that involves doing for each element of b. 2014-10-22T15:26:25Z MrSavage quit (Ping timeout: 244 seconds) 2014-10-22T15:26:49Z taylanub: that is in the nature of cartesian combination; for each element of the first set: for each element of the second set: pair up the two elements 2014-10-22T15:27:02Z taylanub: how else would you do it? 2014-10-22T15:30:43Z lrs: I mean, schemewise 2014-10-22T15:30:52Z lrs: Why does it have to be 2014-10-22T15:31:10Z lrs: (map (lambda (a-element) (map (lambda (b-element) (cons a-element b-element)) 2014-10-22T15:31:12Z lrs: And not 2014-10-22T15:31:22Z lrs: (map (lambda (a-element) 2014-10-22T15:31:26Z lrs: ;;; SOME CRAP ;;; 2014-10-22T15:31:30Z lrs: (map (lambda (b-element) (cons a-element 2014-10-22T15:32:47Z daviid quit (Ping timeout: 245 seconds) 2014-10-22T15:33:53Z pjb` is now known as pjb 2014-10-22T15:34:31Z b4283 joined #scheme 2014-10-22T15:34:46Z benaiah: lrs: if you do that, your (cons a-element b-element) has no reference to a-element, which is an argument to the first lambda, so no a-element exists in its scope, IIUC 2014-10-22T15:35:18Z lrs: Ah 2014-10-22T15:35:26Z lrs: The scope thing 2014-10-22T15:35:50Z lrs: It would only do some stuff to b 2014-10-22T15:35:52Z lrs: b-element 2014-10-22T15:35:53Z lrs: That is 2014-10-22T15:36:09Z benaiah: what would only do some stuff to b? 2014-10-22T15:36:22Z lrs: (cons a-element b-element) 2014-10-22T15:38:28Z benaiah: cons doesn't really do anything to anything, it just returns a pair. But it can't return a pair if it doesn't know what it's referencing. 2014-10-22T15:39:47Z Riastradh joined #scheme 2014-10-22T15:40:09Z zacts- quit (Ping timeout: 244 seconds) 2014-10-22T15:43:28Z germ13 quit (Ping timeout: 244 seconds) 2014-10-22T15:43:36Z lrs: benaiah, So it needs two variables 2014-10-22T15:44:31Z benaiah: lrs: it needs two things, which in this case are two variables, yes 2014-10-22T15:44:48Z lrs: Cool, i thin ki get it 2014-10-22T15:45:07Z lrs: Do you think you guys could check my comments of another functio nand tell me if im right or not? 2014-10-22T15:54:45Z pnkfelix quit (Quit: rcirc on GNU Emacs 24.3.92.1) 2014-10-22T15:55:52Z lrs: http://lpaste.net/3854780289721040896 2014-10-22T15:56:00Z lrs: If anyone feel like it 2014-10-22T15:56:45Z Vutral quit (Ping timeout: 260 seconds) 2014-10-22T15:57:13Z lrs: 1. Not really sure how it fuses it as a cons (I guess its different from the iterative thing) 2. Not really sure why the else condition does a recursive call on cdr set 1 and set 2, does it check the rest of the list that way? how? 2014-10-22T16:01:47Z githogori joined #scheme 2014-10-22T16:02:44Z Vutral joined #scheme 2014-10-22T16:05:00Z alexei_ joined #scheme 2014-10-22T16:13:30Z gravicappa joined #scheme 2014-10-22T16:14:05Z kazimir42 joined #scheme 2014-10-22T16:19:43Z mrowe is now known as mrowe_away 2014-10-22T16:28:25Z alexei_ quit (Ping timeout: 260 seconds) 2014-10-22T16:39:12Z joneshf-laptop quit (Ping timeout: 250 seconds) 2014-10-22T16:40:36Z b4283 quit (Quit: Konversation terminated!) 2014-10-22T16:41:56Z pjb: A∖B = A∩∁B 2014-10-22T16:42:47Z pjb: A∖B={x|x∈A ∧ x∉B} 2014-10-22T16:49:19Z ventonegro quit (Remote host closed the connection) 2014-10-22T16:51:42Z alexei_ joined #scheme 2014-10-22T16:52:09Z defanor_ joined #scheme 2014-10-22T16:55:27Z lrs: pjb, I tried anohter function 2014-10-22T16:55:52Z Black-Irish quit (Quit: Leaving) 2014-10-22T16:56:12Z Black-Irish joined #scheme 2014-10-22T16:57:08Z lrs: pjb, http://pastebin.com/VdD5VCJx 2014-10-22T16:59:54Z wingo quit (Ping timeout: 272 seconds) 2014-10-22T17:03:54Z defanor_ quit (Quit: giving up on this server) 2014-10-22T17:04:48Z defanor_ joined #scheme 2014-10-22T17:05:49Z Vutral quit (Ping timeout: 260 seconds) 2014-10-22T17:06:00Z lrs: I would be really grateful if someone could comment that :P 2014-10-22T17:09:09Z MrSavage joined #scheme 2014-10-22T17:09:17Z Vutral joined #scheme 2014-10-22T17:09:19Z defanor_ is now known as defanor 2014-10-22T17:16:01Z theseb quit (Quit: Leaving) 2014-10-22T17:30:25Z taylanub: lrs: it would be good if you didn't omit parantheses when talking about code in quotes. for example you speak of "car set1" and it's not immediately clear that you mean "(car set1)" 2014-10-22T17:30:41Z lrs: Ah right 2014-10-22T17:30:52Z taylanub: lrs: you could also say "the car of set1" 2014-10-22T17:31:00Z lrs: taylanub, My problem is though exactly describing whats happening 2014-10-22T17:31:08Z lrs: Like 2014-10-22T17:31:22Z lrs: If i hae a set (1 2 3) and (3 2 1) 2014-10-22T17:31:33Z lrs: It starts by checking if 1 is a member of 3 2 1 riht 2014-10-22T17:31:38Z taylanub: yeah 2014-10-22T17:31:54Z taylanub: (well, by checking if (1 2 3) is null first, but anyway) 2014-10-22T17:31:58Z lrs: Yeah 2014-10-22T17:32:17Z lrs: And then... if it is... it checks if cdr set 1 is a member of set 2 ? 2014-10-22T17:32:35Z taylanub: no, do you see a 'member?' there? 2014-10-22T17:33:06Z lrs: It calls diff ? :S 2014-10-22T17:33:07Z fridim_ quit (Ping timeout: 255 seconds) 2014-10-22T17:33:09Z lrs: So shouldnt it check it? 2014-10-22T17:33:30Z lrs: So what does the (diff (cdr set1) set2)) do then 2014-10-22T17:35:15Z daviid joined #scheme 2014-10-22T17:35:47Z tadni quit (Read error: Connection reset by peer) 2014-10-22T17:35:57Z taylanub: you tell me what it does 2014-10-22T17:36:12Z germ13 joined #scheme 2014-10-22T17:36:12Z taylanub: if set1 is (1 2 3), what is (diff (cdr set1) set2) equal to? 2014-10-22T17:36:15Z taylanub: in simpler terms 2014-10-22T17:36:30Z taylanub: for example, what is (cdr set1)? 2014-10-22T17:36:47Z lrs: diff 1 ( 3 2 1) 2014-10-22T17:36:55Z taylanub: lrs: what is (cdr set1) 2014-10-22T17:37:01Z lrs: Woops 2014-10-22T17:37:12Z lrs: 2 3 (3 2 1) 2014-10-22T17:37:17Z taylanub: what? 2014-10-22T17:37:20Z lrs: diff (2 3) (3 2 1) 2014-10-22T17:37:35Z lrs: (diff (2 3) 3 2 1) 2014-10-22T17:37:37Z taylanub: no, if set1 is (1 2 3), what is (cdr set1)? there's no (3 2 1) anywhere here 2014-10-22T17:37:49Z taylanub: I'm just saking what (cdr set1) is, if set1 is (1 2 3) 2014-10-22T17:38:14Z lrs: 2 3 2014-10-22T17:38:20Z taylanub: you mean (2 3) 2014-10-22T17:38:23Z lrs: Ye 2014-10-22T17:38:24Z lrs: s 2014-10-22T17:38:27Z taylanub: right 2014-10-22T17:38:59Z taylanub: so, given (cdr set1) is (2 3), (diff (cdr set1) set2) is equal to (diff '(2 3) set2). now, what is set2 again? 2014-10-22T17:39:10Z lrs: (3 2 1) 2014-10-22T17:39:28Z hiroakip joined #scheme 2014-10-22T17:39:28Z taylanub: right, so (diff (cdr set1) set2) is equal to (diff '(2 3) '(3 2 1)), right? 2014-10-22T17:39:34Z lrs: Yeå 2014-10-22T17:39:37Z lrs: Yep 2014-10-22T17:39:53Z taylanub: now we can start over with 'diff', but this time with set1 = '(2 3) and set2 = '(3 2 1) 2014-10-22T17:40:10Z taylanub: because now it's been (recursively) called with those values for its set1 and set2 parameters 2014-10-22T17:40:12Z lrs: So it checks if 2 3 is member of 3 2 1 2014-10-22T17:40:20Z taylanub: sure about that? 2014-10-22T17:40:43Z lrs: I think so 2014-10-22T17:40:44Z lrs: ? 2014-10-22T17:40:51Z lrs: :S 2014-10-22T17:40:54Z taylanub: re-read the definition of diff 2014-10-22T17:40:58Z pyon joined #scheme 2014-10-22T17:41:25Z taylanub: like the first time, what is the first thing the 'cond' does? the first thing it does is to check if set1 is null. set1 is '(2 3), which isn't null. what does it do next? 2014-10-22T17:41:40Z lrs: member? 2014-10-22T17:41:46Z lrs: Car 2014-10-22T17:41:53Z taylanub: in one sentence please? 2014-10-22T17:41:58Z lrs: If car of set 1 is a member of set 2 2014-10-22T17:42:09Z taylanub: right. what is the car of set1, and what is set2? 2014-10-22T17:42:24Z lrs: Now its 2 3 right 2014-10-22T17:42:25Z lrs: So 2 2014-10-22T17:42:28Z taylanub: right 2014-10-22T17:42:44Z taylanub: and set2? 2014-10-22T17:43:01Z lrs: 3 2 1 2014-10-22T17:43:09Z taylanub: right. is 2 a member of (3 2 1)? 2014-10-22T17:43:13Z lrs: Yes 2014-10-22T17:43:17Z taylanub: so what does 'cond' do then? 2014-10-22T17:43:38Z lrs: It continues the loop? 2014-10-22T17:43:54Z taylanub: the recursion, yeah. rinse and repeat. 2014-10-22T17:44:00Z lrs: Ok, lets say its 2014-10-22T17:44:20Z lrs: set1= (1 2 3) set2=( 2 3 4) 2014-10-22T17:44:25Z taylanub: no no 2014-10-22T17:44:27Z lrs: And I activate the else condition 2014-10-22T17:44:28Z taylanub: just continue 2014-10-22T17:44:42Z taylanub: continue with set1 = (3) and set2 = (3 2 1) 2014-10-22T17:44:47Z taylanub: it won't recurse forever 2014-10-22T17:44:56Z lrs: It will stop when it sees null? 2014-10-22T17:44:58Z lrs: :P 2014-10-22T17:45:02Z taylanub: right, and what will it return? 2014-10-22T17:45:11Z lrs: quote89 2014-10-22T17:45:14Z lrs: quote() 2014-10-22T17:45:25Z taylanub: (quote ()), yes. i.e. the same as (list), i.e. the empty list 2014-10-22T17:45:40Z taylanub: so, the result of (diff '(1 2 3) '(3 2 1)) is, ultimately ... ? 2014-10-22T17:45:46Z lrs: 0 2014-10-22T17:45:55Z taylanub: well, () isn't 0 in Scheme 2014-10-22T17:46:00Z lrs: Ops 2014-10-22T17:46:00Z lrs: Correct 2014-10-22T17:46:02Z taylanub: but yeah it's the empty list, aka "null" 2014-10-22T17:46:03Z lrs: An empty list. 2014-10-22T17:46:12Z taylanub: so you see, it worked just fine 2014-10-22T17:46:25Z lrs: But what about (1 2 3) and (2 3 4) 2014-10-22T17:46:39Z taylanub: follow the steps for that one and see what happens 2014-10-22T17:46:41Z lrs: What happens when cons(car set1) ( diff (cdr set1) set2)) 2014-10-22T17:46:51Z taylanub: write that code properly! 2014-10-22T17:47:33Z lrs: It will check if member? 1 is in 2 3 4 2014-10-22T17:47:35Z lrs: Which is false 2014-10-22T17:47:41Z lrs: So it will go to the else 2014-10-22T17:47:46Z lrs: Which says 2014-10-22T17:48:07Z lrs: (cons (car set) which is 1 2014-10-22T17:48:17Z lrs: ANd then it does (diff (cdr set1) set2) 2014-10-22T17:48:22Z lrs: Which I dont really get 2014-10-22T17:48:33Z taylanub: (car set1) is 1, yes, not "(cons (car set)" 2014-10-22T17:48:39Z taylanub: (just being exact) 2014-10-22T17:48:44Z lrs: Yes 2014-10-22T17:48:59Z taylanub: (cons (car set1) (diff (cdr set1) set2)) 2014-10-22T17:49:07Z taylanub: = (cons 1 (diff (cdr set1) set2)) 2014-10-22T17:49:16Z taylanub: now there's something interesting to note here 2014-10-22T17:49:35Z taylanub: in the previous case, we were left with a bare 'diff' call like (diff whatever) and nothing around it. 2014-10-22T17:49:44Z taylanub: so we could just delve into 'diff' again and go on to get the result 2014-10-22T17:49:53Z lrs: I mean in my head, its bot an accumulator of all the coming/past numbers that arent member? but also an recursive call 2014-10-22T17:50:00Z taylanub: but this time there's (cons 1 <>) around the (diff whatever) call. 2014-10-22T17:50:10Z taylanub: right 2014-10-22T17:50:21Z lrs: But I dont get what it does, in this example 2014-10-22T17:50:23Z lrs: Right now 2014-10-22T17:50:28Z taylanub: you see, we will recurse down again, but we also have this (cons 1 ) context around it. 2014-10-22T17:50:37Z taylanub: we need to remember that context 2014-10-22T17:50:45Z MichaelRaskin quit (Quit: MichaelRaskin) 2014-10-22T17:51:04Z taylanub: write down (cons 1 ) somewhere, then see what the recursive diff call results in and put it there later 2014-10-22T17:51:55Z lrs: Right 2014-10-22T17:51:59Z lrs: What does it result in? 2014-10-22T17:52:18Z lrs: Maybe a better list would be 2014-10-22T17:52:24Z taylanub: you tell me. we will compute (diff (cdr set1) set2), right? what's (cdr set1) and what's set2? 2014-10-22T17:53:02Z lrs: set1 = (1 2 3) set2= ( 6 5 3) 2014-10-22T17:53:06Z taylanub: no no 2014-10-22T17:53:21Z taylanub: (1 2 3) and (2 3 4) is a fine example. some members are common, while others aren't. you'll see the full thing in effect. 2014-10-22T17:53:49Z lrs: cdr set1 is (2 3) 2014-10-22T17:54:04Z taylanub: right, so do (diff '(2 3) '(2 3 4)) now. 2014-10-22T17:54:35Z lrs: car 2 is member of set2 2014-10-22T17:54:40Z lrs: Yes, and it will remove it 2014-10-22T17:54:49Z lrs: Or it wont put a cons in it 2014-10-22T17:55:28Z taylanub: so with what (diff ...) call will it continue? 2014-10-22T17:56:02Z lrs: diff '(3) '(2 3 4) 2014-10-22T17:56:13Z taylanub: right. now once more. 2014-10-22T17:56:31Z lrs: So it will do the cons 2014-10-22T17:56:35Z taylanub: not yet 2014-10-22T17:56:40Z taylanub: tell me how it continues first 2014-10-22T17:57:20Z lrs: Right now were at (diff (cdr set1) set2) 2014-10-22T17:57:26Z lrs: So I think it will return up to null? 2014-10-22T17:57:36Z taylanub: yeah, it will eventually return '() 2014-10-22T17:57:41Z lrs: That I get 2014-10-22T17:57:43Z taylanub: but we still have the context lying around 2014-10-22T17:57:44Z lrs: I think 2014-10-22T17:57:52Z lrs: Yes 2014-10-22T17:58:02Z lrs: What does it create cons from 2014-10-22T17:58:09Z taylanub: we're still within the (cons 1 ) context. so insert the value there 2014-10-22T17:59:43Z taylanub: lrs: you know which value I mean, right? the '() we just got. 2014-10-22T17:59:56Z lrs: but what happened to the 3? 2014-10-22T18:00:01Z lrs: I mean, 1 2014-10-22T18:00:07Z taylanub: it's right there 2014-10-22T18:00:12Z taylanub: (cons 1 ) 2014-10-22T18:00:14Z lrs: Or, lets say it was a 10 instead of a 3 2014-10-22T18:00:25Z taylanub: 3? 1? what? 2014-10-22T18:00:30Z taylanub: the 1 we had is there 2014-10-22T18:00:33Z taylanub: (cons 1 ) 2014-10-22T18:00:34Z lrs: Yes 2014-10-22T18:00:45Z taylanub: the 3 was dropped because it's a member of (2 3 4) 2014-10-22T18:00:48Z lrs: Yes, but what if we had more numbers that differed 2014-10-22T18:00:53Z alexei_ quit (Ping timeout: 240 seconds) 2014-10-22T18:01:00Z taylanub: we can do another example later, if you understood this one. 2014-10-22T18:01:05Z lrs: I think so 2014-10-22T18:01:11Z lrs: Or I do 2014-10-22T18:01:20Z taylanub: just tell me the resulting expression 2014-10-22T18:01:29Z taylanub: insert '() in (cons 1 ), that's all I want :P 2014-10-22T18:01:30Z lrs: (cons 1 null) 2014-10-22T18:01:41Z taylanub: you can't type '() as null, but yeah 2014-10-22T18:01:54Z lrs: set1 = (1 2 3) set2= ( 6 5 3) 2014-10-22T18:01:57Z taylanub: so we got the pair (1 . ()). do you know what that equals? 2014-10-22T18:02:00Z lrs: 1 2014-10-22T18:02:03Z taylanub: no 2014-10-22T18:02:06Z taylanub: (1) 2014-10-22T18:02:07Z lrs: (1) 2014-10-22T18:02:09Z lrs: Right 2014-10-22T18:02:24Z lrs: Ok, but lets do this example 2014-10-22T18:02:24Z taylanub: yeah. so {1, 2, 3} \ {2, 3, 4} = {1}, right. 2014-10-22T18:02:29Z lrs: Yep 2014-10-22T18:02:29Z taylanub: ok, let's do that one. 2014-10-22T18:02:39Z lrs: So, its the same procedure 2014-10-22T18:02:45Z taylanub: we can skip ahead to the first (cons x ) context if you want. can you tell me what it is? 2014-10-22T18:02:48Z taylanub: (what x is) 2014-10-22T18:03:00Z lrs: We finally get (cons 1 ) 2014-10-22T18:03:08Z lrs: But.... 2014-10-22T18:03:41Z leppie quit (Ping timeout: 260 seconds) 2014-10-22T18:03:44Z lrs: Heres a thing 2014-10-22T18:03:54Z lrs: If I get one number that starts the else part 2014-10-22T18:04:00Z lrs: Does it remain calculating there forever? 2014-10-22T18:04:10Z lrs: Or I mean, until it gets to null 2014-10-22T18:04:17Z lrs: Since it calls diff? 2014-10-22T18:04:24Z lrs: (cons 1 (diff (cdr set1) set2)) is how it looks like right now 2014-10-22T18:04:27Z taylanub: it remembers the (cons x ), context, then delves into the recursive call. 2014-10-22T18:04:54Z lrs: And after we find 1 , it does (2 3) (6 5 3) 2014-10-22T18:05:02Z lrs: And that is false, right ? 2014-10-22T18:05:09Z taylanub: no, that's fine. 2014-10-22T18:05:24Z taylanub: it makes set1 smaller each time, so it will eventually halt at null 2014-10-22T18:05:25Z lrs: Hmm? 2014-10-22T18:05:53Z taylanub: (cons 1 (diff '(2 3) '(6 5 3))) 2014-10-22T18:05:57Z lrs: Right 2014-10-22T18:06:02Z lrs: So what that says 2014-10-22T18:06:09Z taylanub: now write aside the (cons 1 ) context, and calculate (cons 1 (diff '(2 3) '(6 5 3))) for me. 2014-10-22T18:06:13Z taylanub: er 2014-10-22T18:06:18Z taylanub: calculate (diff '(2 3) '(6 5 3)) for me. 2014-10-22T18:06:19Z lrs: Is '(2 3) member? '(6 5 3) 2014-10-22T18:06:26Z taylanub: not '(2 3) 2014-10-22T18:06:29Z taylanub: (car '(2 3)) 2014-10-22T18:06:38Z lrs: Ah 2014-10-22T18:06:42Z lrs: So it first picks cdr 2014-10-22T18:06:48Z lrs: And then it goes back to the first deifintion 2014-10-22T18:06:49Z lrs: Which is car 2014-10-22T18:06:52Z lrs: So it picks 2 2014-10-22T18:06:57Z taylanub: it just repeats the whole 'diff' 2014-10-22T18:06:59Z lrs: And checks if its a member of 6 5 3 2014-10-22T18:07:12Z lrs: Which isnt true 2014-10-22T18:07:19Z taylanub: so it goes to the else again 2014-10-22T18:07:23Z taylanub: and what do we have this time? 2014-10-22T18:07:31Z tadni joined #scheme 2014-10-22T18:07:43Z lrs: cdr 3 member+ 6 5 3 2014-10-22T18:07:47Z lrs: *? 2014-10-22T18:07:51Z taylanub: what? 2014-10-22T18:07:54Z leppie joined #scheme 2014-10-22T18:07:59Z taylanub: you're at the else, with set1 = (2 3) and set2 = (6 5 3) 2014-10-22T18:08:29Z lrs: I thougt I was still at else? 2014-10-22T18:08:35Z ivanshmakov quit (Read error: Connection reset by peer) 2014-10-22T18:08:44Z lrs: I mean 2014-10-22T18:08:45Z taylanub: we're at else *again*, aside from the context. 2014-10-22T18:08:52Z taylanub: we will save a second context. 2014-10-22T18:08:53Z lrs: Thats why I said, if member? is true once, does it stay calling the else function on repeat 2014-10-22T18:09:22Z taylanub: it can't be true forever, because set1 gets smaller and smaller 2014-10-22T18:09:31Z taylanub: eventually set1 is null so it catches you with (null? set1) 2014-10-22T18:09:37Z lrs: No 2014-10-22T18:09:38Z lrs: I get that 2014-10-22T18:09:39Z lrs: but what i mean is 2014-10-22T18:09:49Z lrs: Does it keeps looping inside (diff (cdr set1) set2) 2014-10-22T18:09:51Z jcowan: taylanub: ping 2014-10-22T18:10:00Z taylanub: pong 2014-10-22T18:10:26Z jcowan: I wanted to talk to you about your C structures proposal if you have time 2014-10-22T18:10:38Z taylanub: hm 2014-10-22T18:10:53Z taylanub: do you have time in half an hour? 2014-10-22T18:11:09Z jcowan: a little later, yes. 2014-10-22T18:11:16Z taylanub: actually I'm here pretty much every day at these times 2014-10-22T18:11:32Z jcowan: in 20 min I have to leave for 15 min, so I'll see you in approx 25 min? 2014-10-22T18:11:43Z taylanub: you mean 35? :P 2014-10-22T18:12:24Z lrs: taylanub, This is a bit hard to understand, and ive struggled with recursion calls or what you call them for a long time 2014-10-22T18:12:24Z taylanub: lrs: we can continue later, too (though I don't have infinite time) 2014-10-22T18:12:31Z lrs: but it made it a bit more clearer 2014-10-22T18:12:43Z lrs: Thanks for the help 2014-10-22T18:12:58Z taylanub: lrs: basically it recurses down a couple times, stops at some point (hopefully), then it "rolls back up" so to say. 2014-10-22T18:12:59Z taylanub: laters. 2014-10-22T18:13:02Z lrs: I got the idea behind the problem, I just need to train more problems and then this will become clearer 2014-10-22T18:13:06Z lrs: See ya 2014-10-22T18:17:31Z vanila: hi jcowan! 2014-10-22T18:18:12Z MrSavage quit (Ping timeout: 245 seconds) 2014-10-22T18:18:41Z ivanshmakov joined #scheme 2014-10-22T18:20:18Z jcowan: hey ho, vanila 2014-10-22T18:20:29Z vanila: :) 2014-10-22T18:20:42Z vanila: please consider RESET/SHIFT rather than call/cc in R7RS! 2014-10-22T18:20:58Z vanila: is this possible? 2014-10-22T18:21:22Z jcowan: Rather than, no. In addition to, yes, definitely. 2014-10-22T18:21:44Z jcowan: We don't break R4RS without extremely compelling reasons. 2014-10-22T18:21:46Z vanila: im just thinking call/cc is bad e.g. http://okmij.org/ftp/continuations/against-callcc.html 2014-10-22T18:21:57Z vanila: there are some string arguments against it 2014-10-22T18:22:00Z vanila: strong* 2014-10-22T18:22:07Z jcowan chuckles. 2014-10-22T18:22:35Z jcowan: It's fairly trivial to implement call/cc on top of shift/reset, simply by having a shift "outside the program" at the top level. 2014-10-22T18:23:07Z jcowan: There are strong arguments against dynamic typing, but we aren't going to remove that either. 2014-10-22T18:32:11Z c74d quit (Remote host closed the connection) 2014-10-22T18:32:45Z kongtomorrow joined #scheme 2014-10-22T18:35:10Z c74d joined #scheme 2014-10-22T18:39:49Z taylanub: well, there are also strong arguments for dynamic typing. call/cc not so much, especially for a core library since it's trivial to implement when needed. but anyway, keeping it around for a while as legacy baggage shouldn't hurt; thankfully that happens rarely in Scheme. 2014-10-22T18:40:00Z taylanub: jcowan: ping me when you're back 2014-10-22T18:41:39Z jcowan: will do 2014-10-22T18:41:48Z taylanub: :) 2014-10-22T18:43:52Z vanila: I think it hurts to keep this baggage around 2014-10-22T18:44:08Z vanila: implementors will implement callcc rather than reset/shift 2014-10-22T18:44:50Z taylanub: vanila: if the spec clearly mentions that call/cc is best implemented with a 'reset' around the program or around each REPL iteration, it won't hurt 2014-10-22T18:45:59Z vanila: programmers cannot portably use reset/shift if they expect many implementations badly define it in tersm of call/cc 2014-10-22T18:47:15Z _tca: and _badly_ is tthe truth 2014-10-22T18:47:35Z _tca: all most all of the implementations that "provide" it as a library use the decade old implementation that is known to be leaky and bugy 2014-10-22T18:48:40Z Tbone139 joined #scheme 2014-10-22T18:51:30Z jlongste` quit (Ping timeout: 255 seconds) 2014-10-22T18:52:33Z _tca: implementing it in scheme also makes it quite a bit slower than it needs to be and makes it impractical for so many things 2014-10-22T18:53:21Z taylanub: vanila: if the shift/reset implementation matches the specification, ... then it's fine 2014-10-22T18:53:28Z _tca: unlike oleg's delimcc in ocaml which is actually competitive and people use and care about 2014-10-22T18:53:29Z taylanub: unless the spec is broken 2014-10-22T18:53:38Z vanila: its not fine 2014-10-22T18:54:56Z taylanub: yes, it is. the spec would probably say that it shouldn't leak memory in this and that situation (otherwise I'd consider the spec broken). if it does that, the only remaining concern is performance. if an implementation goes through heaps to implement a non-leaky shift/reset in terms of call/cc and then it's slow as hell, then, well, don't use that implementation :) 2014-10-22T18:54:56Z vanila: "Therefore, in practice if some form of delimited control is needed, it has to be provided as a primitive. We cannot in practice rely on call/cc plus mutation. It seems call/cc has no reason for existence." 2014-10-22T18:55:19Z _tca: its impossible to not make it slow as hell when implementing it in scheme taylanub 2014-10-22T18:55:37Z vanila: It's worth to consider his arguments http://okmij.org/ftp/continuations/against-callcc.html 2014-10-22T18:55:38Z taylanub: right, it seems shift/reset simply *cannot* be implemented properly in terms of call/cc, so it's not a concern anyway. 2014-10-22T18:55:50Z vanila: he is one of the people who most well understand first class continuations 2014-10-22T18:56:18Z _tca: taylanub: but call/cc can be implemented in terms of shift/reset with no trouble so why wouldn't shift/reset be the basis for the future of scheme 2014-10-22T18:56:37Z vanila: taylanub, yes I think so and if the spec demands call/cc people will leave us without shift/reset.. instead we get a much worse operator that has problems in its own right 2014-10-22T18:56:41Z taylanub: _tca: shift/reset usage need not be any less efficient than a throw/catch in another language, if the continuation object does not escape. 2014-10-22T18:56:44Z _tca: right now teaching material avoids continuations because call/cc is a joke 2014-10-22T18:57:46Z _tca: taylanub: yes, if the implementatino supports it directly, you wont be able to do that as a library with call/cc 2014-10-22T18:57:57Z _tca: which is why it's important to be spec'd 2014-10-22T18:58:21Z _tca: whats the point of continuing with standardization if old things known to be bad are set in stone 2014-10-22T18:59:05Z _tca: is it intentional suicide to just say "oh scheme is dead we will make it a tad bit nicer but you should just go use racket because that's the future"? 2014-10-22T18:59:12Z taylanub: you probably misread what I wrote. given shift/reset and call/cc are specified, an implementation needs to be dumb in first place to implement the former in terms of the latter instead of the other way around, ASSUMING it's even possible to do that in a conformant manner. 2014-10-22T18:59:43Z Black-Irish quit (Quit: Leaving) 2014-10-22T18:59:47Z _tca: oaky i misunderstood your argument 2014-10-22T19:01:45Z jlongste` joined #scheme 2014-10-22T19:02:54Z jcowan: taylanub: I have returned 2014-10-22T19:02:54Z taylanub: vanila: see above. if shift/reset is *required* alongside call/cc, there is absolutely no issue 2014-10-22T19:02:55Z jlongste` quit (Client Quit) 2014-10-22T19:03:05Z taylanub: jcowan: hi 2014-10-22T19:04:01Z vanila: I think it's bad that he asks for "extremely compelling reasons." and then palms them off with mirroring my language re. some unrelated thing about dynamic types :/ - odd to hear the guy tasks with speccing scheme dissing one of its main features? 2014-10-22T19:04:36Z taylanub: vanila: chill; it was obviously just rhetoric :) 2014-10-22T19:04:46Z taylanub: (not to speak for someone else...) 2014-10-22T19:04:49Z vanila: yea im chill just saying 2014-10-22T19:06:48Z phipes joined #scheme 2014-10-22T19:07:08Z taylanub: jcowan: if you're going to say that my proposed library will be inherently very slow on all existing Scheme implementations, then that's probably true :P I'm a little disappointed that barely any impls optimize on records with statically apparent values in their fields 2014-10-22T19:08:00Z hiroakip quit (Ping timeout: 265 seconds) 2014-10-22T19:08:46Z hiroakip joined #scheme 2014-10-22T19:12:49Z jcowan_ joined #scheme 2014-10-22T19:13:41Z jcowan quit (Disconnected by services) 2014-10-22T19:13:44Z jcowan_ is now known as jcowan 2014-10-22T19:14:02Z jcowan: taylanub: That's one point, but I'm more concerned about pointers. 2014-10-22T19:14:12Z taylanub: jcowan: oh, those are guile-specific 2014-10-22T19:14:28Z taylanub: jcowan: since I have no test R7RS system, I still didn't get to merge the rnrs branch to master 2014-10-22T19:14:38Z arrdem is now known as ARRDEM 2014-10-22T19:14:48Z jcowan: Okay. In general, we could have pointers provided the programmer is responsible for making sure they point only to immovable memory. 2014-10-22T19:14:50Z taylanub: maybe I should just merge it and leave bugs for later 2014-10-22T19:15:08Z MichaelRaskin joined #scheme 2014-10-22T19:15:15Z jcowan: Did you run the Chibi R7RS tests? 2014-10-22T19:16:47Z jcowan: vanila: I agree that it's bad to implement shift/reset (or other delimited continuations) on top of undelimited continuations. Nevertheless, an implementation without call/cc simply isn't Scheme. 2014-10-22T19:17:11Z taylanub: hm, does Chibi support using R7RS library syntax to import an R6RS library and vice versa? if so, I could test the rnrs branch's r7 and r6 parts with Chibi 2014-10-22T19:17:11Z jcowan: And yes, the reference to dynamic typing was rhetorical. 2014-10-22T19:17:39Z jcowan: No, but maybe Sagittarius does: it is intended to be R6RS/R7RS, whereas Chibi is R5RS/R7RS. 2014-10-22T19:17:58Z taylanub: ah ok 2014-10-22T19:18:19Z jcowan: But transforming an R6RS library into R7RS format should be absolutely trivial and mechanical (except of course for what libraries it imports) 2014-10-22T19:18:43Z vanila: is it possible the spec can include shift/reset then? and maybe recommend to impl. call/cc in terms of it 2014-10-22T19:19:39Z jcowan: R7RS-large will include a delimited control library, and it will surely make that recommendation. 2014-10-22T19:19:56Z jcowan: What I can't say is whether it will be a mandatory or an optional part of R7RS-large. 2014-10-22T19:20:39Z vanila: what is R7RS-large? 2014-10-22T19:20:51Z _tca: someone mentioned r7rs-large module talk a while back and i couldn't find it, can someone link me? 2014-10-22T19:20:53Z jcowan: R7RS has been split into two languages, one a proper subset of the other. 2014-10-22T19:21:00Z taylanub: the r6 extensions to bytestructures use r6rs libraries, but now that I think of it I don't know why it didn't occur to me to just have an R7RS library import an R6RS library, since I assume that the platform supports that anyway. 2014-10-22T19:21:03Z jcowan: _tca: I haven't given it yet. :-) 2014-10-22T19:21:25Z _tca: is there discussion on a mailing list or osmething? 2014-10-22T19:21:29Z oleo quit (Read error: Connection reset by peer) 2014-10-22T19:21:43Z jcowan: Right now things are very quiet, but the mailing list is wg2@googlegroups.com 2014-10-22T19:21:58Z vanila: btw jcowan have seen how hard it is to convert this R7RS spec to HTML :( 2014-10-22T19:22:09Z vanila: I have to manually turn it into a texinfo file so I can generate nice HTML 2014-10-22T19:22:24Z jcowan: er, scheme-reports-wg2@googlegroups.com 2014-10-22T19:22:29Z _tca: yea, not even tex2page not working makes me sad 2014-10-22T19:22:50Z jcowan: Have you tried Aubrey Jaffer's RnRS-specific converter? 2014-10-22T19:23:08Z vanila: ill try, i think i tried it and couldn't get it to run before 2014-10-22T19:23:14Z jcowan nods. 2014-10-22T19:23:45Z jcowan: I'm planning (if the WG agrees) to release the large language in a series of editions of wider and wider scope, so we don't have to wait halfway to forever to see something. 2014-10-22T19:28:09Z hiroakip quit (Ping timeout: 245 seconds) 2014-10-22T19:28:32Z jcowan: Here's my current list of modules for the Red Edition: SRFI 1, SRFI 13 (strings), SRFI 14 (charsets), binary heaps, boxes, comparators, immutable dequeues/sets/maps, enums/sets/maps, hash tables, bidirectional hash tables, immutable cycles, integer sets, mutable queues, SRFI 99 records, sets/bags, sorting vectors/lists, vector lib (SRFI 43++), generators, lazy seqs, immutable pairs/lists, and possibly general multi-dimensional arrays. 2014-10-22T19:29:10Z phipes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2014-10-22T19:29:17Z jcowan: Also comparators, which are needed by many of the above. 2014-10-22T19:30:52Z akkad_ is now known as AKKAD 2014-10-22T19:31:12Z jcowan: Other possibilities are ternary search trees and sparse vectors/maps. 2014-10-22T19:31:57Z jcowan: If anyone thinks any of these ought to be omitted, speak now. 2014-10-22T19:33:38Z taylanub: jcowan: by the way, do you remember the outcome of whether (let-syntax (...) (begin (define ...) ...)) should splice the definitions into the `let-syntax' form's position or not? 2014-10-22T19:33:47Z jcowan: It does not. 2014-10-22T19:34:00Z taylanub: is this made clear in the spec? 2014-10-22T19:34:02Z Riastradh: How about ((let-syntax ((x ...)) x) ...)? 2014-10-22T19:35:13Z taylanub: Riastradh: what about that? 2014-10-22T19:35:24Z Riastradh: Is it prescribed to work? 2014-10-22T19:35:29Z _tca: "immutable pairs/lists" as in the default? or seperate like icons/ilist but still work with standard list operations? 2014-10-22T19:35:39Z Riastradh: (In sensible, well-factored macro expanders it does, but I'm aware of only one of those!) 2014-10-22T19:36:11Z jcowan: _tca: Separate, does *not* work with standard list operationsn. 2014-10-22T19:36:24Z taylanub: Riastradh: let-syntax etc. are under section 4. Expressions, so I'd think that should certainly work. 2014-10-22T19:37:07Z Riastradh: rudybot: eval ((let-syntax ((x (syntax-rules () ((x (0 1)) 'foo)))) x) (0 1)) 2014-10-22T19:37:08Z rudybot: Riastradh: your sandbox is ready 2014-10-22T19:37:09Z rudybot: Riastradh: error: eval:1:54: x: bad syntax in: x 2014-10-22T19:38:43Z jcowan: I should think Riastradh's example would *not* work. 2014-10-22T19:38:53Z Riastradh: Works in riaxpander. 2014-10-22T19:39:05Z taylanub: Riastradh: I misinterpreted your question. from my understanding/intuition of how macros work, that shouldn't work... 2014-10-22T19:39:24Z Riastradh: Riaxpander goes to no special effort to make it work, either. It arises naturally from a uniform structure for the expansion process. 2014-10-22T19:40:08Z jcowan: The effect of specifying a syntax keyword in other than (x ...) context is unspecified. 2014-10-22T19:41:15Z Riastradh: What Riaxpander does when it sees ( ...) is expand and see what it is, and if it's a macro, apply it. 2014-10-22T19:41:33Z Riastradh: No special case here for `Is it a name? If so, see whether it's a macro. Otherwise, expand it.' 2014-10-22T19:42:15Z taylanub: that's interesting. the way I had so far grokked scheme evaluation semantics: the moment a list's first element is anything but an identifier (symbol) for a macro, the list can be assumed to represent a procedure call. 2014-10-22T19:44:11Z alexei_ joined #scheme 2014-10-22T19:44:40Z przl joined #scheme 2014-10-22T19:45:05Z taylanub: Riastradh: could you think of any practical use-case for this so far? (not suggesting there isn't) 2014-10-22T19:45:51Z jcowan: I ran it through my usual list of a kajillion Schemes 2014-10-22T19:46:02Z jcowan: Scheme48/scsh and Kawa are the only ones that accept it. 2014-10-22T19:46:24Z jcowan: Others either say "illegal syntax" "let-syntax is not defined", or "0 is not a procedure" 2014-10-22T19:47:00Z Riastradh: I'm a little surprised Scheme48 accepts it. I thought its macro expander used the special case I described. MIT Scheme is the only one I might expect to accept it. 2014-10-22T19:47:23Z jcowan: taylanub: 4.3.1 under let-syntx says "Each binding of a keyword has body as its region." That excludes splicing, I think. 2014-10-22T19:47:52Z jcowan: Riastradh: 1 ]=> ((let-syntax ((x (syntax-rules () ((x (0 1)) 'foo)))) x) (0 1)) 2014-10-22T19:47:52Z jcowan: ;Syntactic keyword may not be used as an expression: #[keyword-value-item 13] 2014-10-22T19:47:58Z taylanub: jcowan: I also just realized at least one expression is mandated for the body :( 2014-10-22T19:48:25Z Riastradh: MIT Scheme sort of uses the same uniform structure riaxpander does, but it's much more complicated. 2014-10-22T19:48:37Z Riastradh: So it's also not surprising to me that MIT Scheme rejects this. 2014-10-22T19:48:49Z jcowan: I personally think making let-syntax splice is kind of strange. 2014-10-22T19:48:58Z Riastradh: taylanub: I don't know for this particular case. It was more an amusing consequence of using a uniform structure in the expander. 2014-10-22T19:50:18Z taylanub: jcowan: well it wouldn't splice itself, just substitute itself with the expansion of its body, which if it's (begin ...) would then splice the definitions. 2014-10-22T19:50:37Z jcowan: Right, but (begin ...) is not an expression. 2014-10-22T19:50:44Z taylanub: jcowan: wait, never mind, it expands to a sequence of expressions... 2014-10-22T19:50:52Z taylanub: er, s/expression/form/g 2014-10-22T19:52:19Z taylanub: hm, apart from intuition, it's simply most useful to have the body simply be wrapped by an implicit 'begin', so it's free to be a splicing begin 2014-10-22T19:52:24Z taylanub: IMO 2014-10-22T19:52:33Z jcowan: That doesn't work either 2014-10-22T19:52:54Z taylanub: why not? 2014-10-22T19:53:53Z jcowan: splicing begin works only in limited contexts 2014-10-22T19:55:11Z taylanub: if the let-syntax is in such a context, it should work. don't really have to specify any special-cases, just mention that the body forms of a let-syntax are implicitly wrapped in a 'begin', though I suppose that might be weird because we actually define two 'begin' forms... 2014-10-22T19:56:26Z klltkr_ joined #scheme 2014-10-22T19:56:40Z klltkr quit (Ping timeout: 255 seconds) 2014-10-22T19:56:56Z jcowan: Three. 2014-10-22T19:57:02Z taylanub: right 2014-10-22T19:57:13Z jcowan: But "form" is not a term used in R7RS; there are definitions and there are expressions, and they don't actually meet up anywhere. 2014-10-22T19:57:31Z taylanub: hm, I see 2014-10-22T19:57:51Z taylanub: that might make it a little more wordy to define, but I'd say it's worth it 2014-10-22T19:58:34Z pnpuff joined #scheme 2014-10-22T19:58:41Z Ryan_Burnside joined #scheme 2014-10-22T19:59:18Z Ryan_Burnside: Hello all, usually I use Common Lisp and needed to try Scheme for a GIMP project (uses TinyScheme). Anyone mind giving me feedback on my style/syntax? 2014-10-22T19:59:21Z Ryan_Burnside: https://github.com/RyanBurnside/GIMP-Turtle/blob/master/Turtle.scm 2014-10-22T20:00:15Z oleo joined #scheme 2014-10-22T20:00:48Z taylanub: from a very quick glance, seems to conform to conventions. I suppose the capitalization of Turtle is a special-case? 2014-10-22T20:00:53Z jcowan: taylanub: See http://trac.sacrideo.us/wg/wiki/WG1Ballot2Results#a48let-syntax for how WG1 voted 2014-10-22T20:01:27Z alezost quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-10-22T20:01:45Z jcowan: Ryan_Burnside: s/whinning/whining 2014-10-22T20:01:52Z mario-goulart: Ryan_Burnside: looks very good, wrt indentation/conventions. I'd s/implimentation/implementation/ 2014-10-22T20:03:16Z jcowan: The only question I have (and this is debatable) is whether the turtle operations should end in !, given that they side-effect the turtle. 2014-10-22T20:03:42Z Ryan_Burnside: mario-goulart, thank you! Spelling is something I need to work on. 2014-10-22T20:03:51Z taylanub: jcowan: I see, thanks. 2014-10-22T20:03:57Z pnpuff left #scheme 2014-10-22T20:04:10Z vanila quit (Remote host closed the connection) 2014-10-22T20:04:16Z Ryan_Burnside: jcowan, I thought the convention was to add ! for modifying functions? 2014-10-22T20:04:43Z Ryan_Burnside: Oh, I see what you are saying. 2014-10-22T20:04:46Z mario-goulart: Ryan_Burnside: also s/Preform/Perform/ :-) 2014-10-22T20:05:12Z jcowan: On the whole I think using ! is unnecessary. 2014-10-22T20:05:29Z jcowan: But I wanted to bring it up in case someone thinks it's a good idea here. 2014-10-22T20:05:35Z Ryan_Burnside: jcowan, It is a tough call in LOGO these commands are understood to be Turtle modifying but there is that element of not modifying data in Scheme. Tough call. 2014-10-22T20:05:38Z jcowan: (that is, using it in this library is unnecessary) 2014-10-22T20:06:04Z jcowan: Scheme isn't big on abbreviations, either, but here it's probably more important to agree with Logo conventions. 2014-10-22T20:06:29Z jcowan: thus pu rather than pen-up! 2014-10-22T20:06:42Z Ryan_Burnside: Sure, I understand. These are able to be typed into GIMP's "Script Fu" REPL directly so it saves a bit of typing. 2014-10-22T20:07:20Z jcowan: taylanub: Is it really necessary for your purposes for structure descriptors to be so dynamic? 2014-10-22T20:09:30Z drewc joined #scheme 2014-10-22T20:10:41Z taylanub: it will probably rarely ever be needed to read the description of a structure at run-time, but it's also very hard to implement all the static features in terms of macros 2014-10-22T20:11:45Z CaptainRant joined #scheme 2014-10-22T20:12:12Z CaptainRant: Are there any cases where a record type is a better choice than a vector ? (Ignoring the type identity thing) 2014-10-22T20:12:54Z taylanub: CaptainRant: conceptually, records are simply vectors where you access fields by name rather than by index 2014-10-22T20:13:17Z taylanub: CaptainRant: in practice, vectors are faster in some implementations 2014-10-22T20:13:42Z drewc: are records not structs? I thought they were. 2014-10-22T20:14:14Z taylanub: basically, yes. do notice how C structs are also, indeed, vectors where you access byte-offsets by name rather than index 2014-10-22T20:14:42Z taylanub: s/vector/array/ for C 2014-10-22T20:15:16Z taylanub: well, and that each field can have a different width. not the case in Scheme. 2014-10-22T20:15:27Z pnpuff joined #scheme 2014-10-22T20:15:36Z drewc: Well, I do not use C struct for my scheme implementation ... but having been a C developer for a while, structs are not arrays. 2014-10-22T20:16:12Z jcowan: Conceptually, all C objects are just sequences, whether indexed by an integer or by a name. 2014-10-22T20:16:13Z drewc: because yeah, precisely. 2014-10-22T20:16:38Z jcowan: In some implementations, records are faster than vectors, however 2014-10-22T20:16:48Z drewc: oh .. we are dealing with concepts? my bad... I will be quiet. 2014-10-22T20:17:19Z jcowan: because vectors check bounds and records do not. I think this is true in Chibi. 2014-10-22T20:17:25Z phipes joined #scheme 2014-10-22T20:17:48Z zacts- joined #scheme 2014-10-22T20:18:29Z drewc knows that conceptually everything is a bag o' bits. Does not help his coding very much right now, but it has! :) 2014-10-22T20:20:54Z mmc joined #scheme 2014-10-22T20:21:31Z kongtomorrow quit 2014-10-22T20:21:39Z developernotes joined #scheme 2014-10-22T20:21:59Z pnpuff left #scheme 2014-10-22T20:22:16Z pnpuff joined #scheme 2014-10-22T20:28:01Z pnpuff quit (Quit: leaving) 2014-10-22T20:30:04Z phipes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2014-10-22T20:32:22Z kongtomorrow joined #scheme 2014-10-22T20:32:24Z Ryan_Burnside: I'm trying to get how macros are able to bind new values to variables beyond their scope. 2014-10-22T20:32:44Z Ryan_Burnside: How is it they avoid seeing a local undefined version of a parameter and bind to something exterior? 2014-10-22T20:34:11Z kazimir42 quit (Ping timeout: 246 seconds) 2014-10-22T20:34:18Z klltkr joined #scheme 2014-10-22T20:35:27Z klltkr_ quit (Ping timeout: 255 seconds) 2014-10-22T20:35:38Z przl quit (Quit: leaving) 2014-10-22T20:38:06Z drewc: Ryan_Burnside: can you paste a demo of what you are referring to? I am not a SCHEMER per se, so no idea what you are talking about.... and hygiene is everything, so really, not a clue. 2014-10-22T20:40:57Z Ryan_Burnside: Let me see if I can find it, essentially it was like set! but without set!. Modifying an external symbol by binding a lambda function. 2014-10-22T20:42:19Z daviid quit (Ping timeout: 258 seconds) 2014-10-22T20:42:37Z gravicappa quit (Ping timeout: 244 seconds) 2014-10-22T20:43:12Z develope_ joined #scheme 2014-10-22T20:43:27Z develope_ quit (Client Quit) 2014-10-22T20:43:29Z developernotes quit (Quit: Textual IRC Client: www.textualapp.com) 2014-10-22T20:46:46Z developernotes joined #scheme 2014-10-22T20:53:30Z developernotes quit (Quit: Textual IRC Client: www.textualapp.com) 2014-10-22T20:55:50Z kongtomorrow quit 2014-10-22T20:56:49Z kongtomorrow joined #scheme 2014-10-22T20:57:13Z Ryan_Burnside: (define (incf num) 2014-10-22T20:57:13Z Ryan_Burnside: (set! num (+ num 1))) 2014-10-22T20:57:52Z Ryan_Burnside: So I'd expect that to increment the num symbol by 1. 2014-10-22T20:58:09Z Ryan_Burnside: But I was shown a different function do get around it (might have been a macro) 2014-10-22T20:58:27Z davexunit quit (Quit: Later) 2014-10-22T21:07:25Z jewel quit (Ping timeout: 244 seconds) 2014-10-22T21:08:01Z kongtomorrow quit 2014-10-22T21:08:54Z AKKAD is now known as akkad 2014-10-22T21:19:58Z Ryan_Burnside quit (Quit: Leaving) 2014-10-22T21:22:14Z mmc quit (Quit: Leaving.) 2014-10-22T21:26:14Z drewc: it does .... but given that you are doing nothing with it save for the returning the return value of SET! ... regardless, you are doing nothing with the num. Do you know what scoping is and the difference between lexically scoped (scheme) and dynamically scoped (elisp 'til 24.1, CL special variables)? are you familiar with other programming languages? 2014-10-22T21:27:31Z macmini9 joined #scheme 2014-10-22T21:30:08Z macmini9 left #scheme 2014-10-22T21:39:27Z davexunit joined #scheme 2014-10-22T21:39:38Z ijp joined #scheme 2014-10-22T21:44:54Z zacts- quit (Remote host closed the connection) 2014-10-22T21:45:17Z kongtomorrow joined #scheme 2014-10-22T21:48:36Z ecraven: drewc: even with dynamic scoping that wouldn't do anything, would it? 2014-10-22T21:49:05Z ecraven: NLAMBDA to the rescue! 2014-10-22T21:49:07Z drewc: ecraven: true, it would't 2014-10-22T21:49:25Z drewc: s/d't/dn't 2014-10-22T21:58:15Z drewc: mmmmm ... fexps, downward funargs ....arghhagagrh 2014-10-22T22:00:28Z klltkr_ joined #scheme 2014-10-22T22:01:37Z klltkr quit (Ping timeout: 260 seconds) 2014-10-22T22:02:03Z drewc is just thinking of the ways that function could work ... 2014-10-22T22:02:51Z mrowe_away is now known as mrowe 2014-10-22T22:07:29Z c74d quit (Remote host closed the connection) 2014-10-22T22:12:53Z jcowan: Old Lispers do it with fexprs 2014-10-22T22:13:48Z c74d joined #scheme 2014-10-22T22:15:27Z tcsc_ joined #scheme 2014-10-22T22:19:26Z kongtomorrow quit 2014-10-22T22:20:43Z iterrogo quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-10-22T22:27:20Z c107 joined #scheme 2014-10-22T22:30:57Z mikeyhc joined #scheme 2014-10-22T22:31:28Z fadein: jcowan: sorry to sound like a stalker, but I noticed your name on www.figlet.org 2014-10-22T22:31:49Z fadein: and I gotta say that I love FIGlet 2014-10-22T22:32:02Z fadein: and you're one of my geek heroes 2014-10-22T22:32:30Z fadein: I've been toying with the idea of making a FIGlet egg for CHICKEN 2014-10-22T22:35:18Z jcowan: Wow, that would be cool, fadein. 2014-10-22T22:35:51Z fadein: I'll hit up Claudio to see if it would be possible/permissible to make a bit of a wrapper around figlet.o 2014-10-22T22:36:12Z fadein: anyway, thank you for your many contributions 2014-10-22T22:55:55Z germ13 quit (Ping timeout: 244 seconds) 2014-10-22T22:57:55Z zacts- joined #scheme 2014-10-22T22:57:58Z ehaliewicz joined #scheme 2014-10-22T23:05:33Z jewel joined #scheme 2014-10-22T23:07:22Z jeapostrophe quit (Ping timeout: 240 seconds) 2014-10-22T23:10:11Z kongtomorrow joined #scheme 2014-10-22T23:14:23Z ijp quit (Quit: brb encrypting my RAM) 2014-10-22T23:15:39Z stepnem quit (Ping timeout: 258 seconds) 2014-10-22T23:22:11Z Riastradh quit (Ping timeout: 246 seconds) 2014-10-22T23:25:53Z lrs quit (Ping timeout: 244 seconds) 2014-10-22T23:28:54Z vanila joined #scheme 2014-10-22T23:36:56Z CaptainRant quit (Quit: WeeChat 0.4.3) 2014-10-22T23:40:46Z alexei_ quit (Ping timeout: 255 seconds) 2014-10-22T23:47:05Z oldskirt quit (Ping timeout: 258 seconds) 2014-10-22T23:55:24Z daviid joined #scheme 2014-10-22T23:55:42Z jewel quit (Ping timeout: 255 seconds)