#clojure logs

2008-10-25

00:03pjb3(ns foo (:require-clojure)) means switch to the foo namespace and pull everything in from the clojure namespace, right?
00:03blbrownhello
00:04pjb3blbrown: hello
00:05Chouserpjb3: no need for :require anything
00:05pjb3Chouser: right, so (ns foo) refers the clojure namespace by default
00:22Chouseryes
00:23Chouseryou can use (:refer-clojure ...) if you want to refer clojure things in some non-default way (exclude, rename, etc.)
02:41sohailanyone know how to get clojure-mode to use my classpath
02:42sohailswank-clojure that is
02:42sohailaha, sw-cl-extra-classpaths
04:12Lau_of_DKMorning gents
04:18PupenoGood morning.
04:19PupenoHi Lau_of_DK.
04:19Lau_of_DKMorning
04:20PupenoIs there a Clojure planet somewhere?
04:21Lau_of_DKYou mean if Rich has bought some real estate in the skies ?
04:21PupenoLau_of_DK: hehehe, no.
04:22PupenoLau_of_DK: a planet is an aggregation of blogs by topic. There's a Debian planet for example, where posts by Debian developers appear.
04:22Lau_of_DKoh, if there is, I'd love to know about it
04:24Lau_of_DKBut I really think that the Euler-wiki is becoming quite helpful for learners
04:25Lau_of_DKIts unfortunate that it gives away the award-winning algorithms for solving the project, but if you can disregard that, theres alot of good code
04:25Lau_of_DK(mostly the stuff not written be my though)
04:25Lau_of_DK(although I will brag about my solution for #59)
04:26Lau_of_DK(and also #37, because its pretty concise)
04:26Lau_of_DK(though #40 is actually the most concise)
04:26Lau_of_DKBut you get the picture
04:32PupenoLau_of_DK: what is the Euler-wiki
04:32Lau_of_DKIts a Wiki where we post solutions/algorithms for solving www.projecteuler.net problems, you'll find it at http://clojure-euler.wikispaces.com
04:39PupenoLau_of_DK: Cool, thanks.
04:40Lau_of_DKnp, But be careful, Euler steals time
10:33milanmitrovicI played around with closure in the last couple of days... and I must say that it looks great!
10:35rhickeymilanmitrovic: cool
10:36milanmitrovicI'd like to try writing something bigger... any hints?
10:36milanmitrovicI use emacs, so swank-clojure would be a really cool thing to have...
10:37milanmitrovicthough slime seems to be cl only...
10:39rhickeymilanmitrovic: slime for Clojure already exists, nice setup instructions here: http://bc.tech.coop/blog/081023.html
10:40milanmitrovicyes... I've been reading the source of swank-clojure and slime...
10:41milanmitrovicbut slime wasn't really built with other lisps in mind... at least as far as I can tell
10:57drewrSLIME just utilizes swank, so as long as there are Clojure implementations of the swank methods, stuff works.
11:11milanmitrovic_drewr: but slime has a lot of cl specific features (debugging - conditions & restarts) stuff like that...
11:33lisppaste8sohail pasted "Can't let qualified name" at http://paste.lisp.org/display/69188
11:33sohailI'm surely missing something obvious up there
11:35sohailerr that should be ~x but same thing..
11:35hoecksohail: you need ~'x
11:36sohailhoeck, hm. why?
11:37sohailI want (testing-123) to expand to (let [y 1] (print y))
11:38sohailanyway, that example could be (defmacro testing-123 [] `(let [y 1] (print y))) and same happens
11:39hoecksorry, i meant ~'y
11:40hoeckthe unquote-quote prevents the y from becoming clojure/y
11:40sohailah
11:41sohailso now I have to use ~'y everywhere...
11:41Chousukewhy not use a gensym?
11:41sohailgood point
11:42sohailthat's good enough for me
11:42sohailthanks people
11:43hoecksohail: ideally you would use y# (auto-gensym) in this simple macro
11:44hoeckbut when you need method-symbols or class literals in macros you need '~
11:44sohailhoeck, can you give me an example?
11:45meredyddhoeck: Really? I haven't run into that issue with method syms and classes - and I'm fairly sure I've done that.
11:45meredyddPerhaps ` has acquired extra magic.
11:45sohailps: what is auto-gensym ?
11:46Chousukesohail: (defmacro testing-123 [] `(let [y# 1] (print y#)))
11:46sohailoh, I see the y# is equivalent to above
11:46sohailnice
11:47meredyddhoeck: My apologies. You're right, it happens on method syms. But it appears to be okay on class names.
11:47hoecksohail: yeah, you're right too :)
11:48hoeckand its needed for intentional aliasing, for example in proxy
11:49Chousukegensyms only stay the same within the same syntax-quoted form. so you can't syntaxquote, unquote a subform, and the syntaxquote a subform of that and expect your y# to be the same as in the earlier syntaxquoted forms.
11:49Chousukeunless there's a way to make that happen. I'm not a macro expert either
11:50Chousukesometimes I wish it'd work though.
12:30sohailbinding is not like let* is it..
12:30rhickeysohail: nope
12:31sohailrhickey, is there some specific reason?
12:31sohaillet is like cl:let*
12:33rhickeyparallel bindings can be popped in unison, also one dynamic binding referring to the prev is unusual
12:33rhickeythat's also why you don;t bind dynamic vars in let like you can in CL
12:33rhickeyseparate construct and semantics
12:35sohailhm
12:36sohailok something to think about
12:40gnuvince_To find the maximum inside a collection, is there a preference towards (apply max coll) or (reduce max coll)?
12:46danlarkin_discontent in the arc community eh :-/ http://www.arclanguage.org/item?id=8462
12:48gnuvince_danlarkin_: not too surprising. And Paul Graham's comment that "Lispers have been willing to wait 50 years for a good implementation" really makes me laugh: a *lot* of experienced Lispers are saying that Clojure is what they've been waiting for, not just a set of macros on top of mzscheme
12:48danlarkin_well I do agree with pg on one point
12:49danlarkin_and that is that it's useless to start horse-racing languages
12:49danlarkin_haha but you're right, I'm not really sure what world he's living in saying that
12:51gnuvince_oh, *ZING*
12:51gnuvince_A guy replied to a comment on arclanguage.org by Paul
12:51gnuvince_"Your mantra in your role running Y-Combinator is "make something people want."
12:51gnuvince_Is Arc exempt from that?"
12:51danlarkin_haha burn!!
13:21dmiles_afk(abort)
13:54arohneris there a good way to 'diff' two structures in clojure?
13:54arohnerI'd like to see the first place where two datastructures are different
13:55cloggedanyone using SLIME with clojure?
13:56arohnerclogged: sure
13:56arohnerme, and I'm sure a bunch of other people
13:57lisppaste8clogged pasted "slime" at http://paste.lisp.org/display/69189
13:57cloggedi already have clojure as inferior-lisp but when i try to start M-x slime the repl i get an error
13:57clogged^^ paste
13:58arohnerare you using cvs slime?
13:58arohnerand swank-clojure?
13:58cloggedcvs slime, not swank-clojure
13:58arohneryeah, you'll need that
13:59arohnerhttp://github.com/jochu/swank-clojure/tree/master
13:59lisppaste8clogged annotated #69189 with "clojure-setup" at http://paste.lisp.org/display/69189#1
13:59cloggedok
14:04cloggedand u think it is better than the clojure-mode?
14:04cloggedcan i have both at once?
14:11arohnerI think swank and clojure mode are mostly orthogonal
14:11arohnerclojure-mode mainly deals with highlighting and indenting
14:11arohnerswank deals with eval-buffer, load-file, etc
14:11arohneryes, you can have them both at once, I do
14:12arohnerC-c C-d C-d is very nice
14:12arohnerprints docs for the function under the cursor
14:19cloggedclojure-mode can evan latest s-exp and a whole file too
14:20kotarakHow do I have to interpret ClassCastErrors? I have a constructor expecting an IPersistentMap and get said error when a pass eg. a sorted-map: clojure.sorted_map__79. This worked previously.
14:22gnuvince_meh
14:22kotarakoops. Ok. again my fault.
14:22gnuvince_Tried Emacs for Clojure and immediately the pinky and wrist strain came back :(
14:26drewcgnuvince: remap capslock and use opposite hand for modifiers
14:26drewci don't do the latter anymore, now that i have a pinky-of-steel!
14:27gnuvince_drewc: my capslock is already remapped
14:27drewcgnuvince: ouch .. that's a shame!
14:27drewcgnuvince: get a kenesis :)
14:28gnuvince_Or keep using vim :)
14:28arohneryeah, I use a keyboard with the split in the middle
14:29arohnerI had wrist problems before emacs, with the split keyboard and remapping caps, I'm great
14:30gnuvince_drewc: it *is* annoying to constantly alt-tab between vim and clj and doing (load-file "foo.clj") constantly
14:31Chousergnuvince_: have you tried chimp?
14:31gnuvince_But it's better than the pain I had after two years of Emacsing.
14:31gnuvince_chimp?
14:31Chouserit's not as bug-free as one would hope, but it's not terrible.
14:31Chouserchimp: http://www.vim.org/scripts/script.php?script_id=2348
14:32gnuvince_Nope, haven't tried that.
14:32kotarakInterfacing to the outside world is hard with Vim. :(
14:32gnuvince_kotarak: indeed.
14:32kotarakI try to make chimp to work as best as I can, but there something strange issues with screen and rlwrap...
14:32Chouseryeah. IMHO, both emacs and vim are showing their age, but I'm not convinced that any of the IDEs are the answer.
14:33Chouserno matter how many complex and featureful plugins are available for them.
14:33gnuvince_The best of both worlds would be something like Yi
14:33ChouserI keep homing netbeans + jvi + enclojure will do it for me. We'll see...
14:33Chouserhoping
14:33gnuvince_where the entire editor is scriptable, like Emacs, but where it is completely independant from the key binding.
14:34kotarakYep. But Haskell is not for everyone.
14:34gnuvince_kotarak: doesn't need to be Haskell, but the basic idea is good.
14:34kotarakHow about jim?
14:34gnuvince_never heard of it.
14:34kotarak(a clojure "vim")
14:34kotarakIt does not exist, yet. ;)
14:34gnuvince_ah
14:35kotarakWhen did it change, that I cannot apply hash-map?
14:46arohnerkotarak: what do you mean?
14:47kotarakI found the problem.
14:47kotarakI had something like this helper function: (defn x [t k] `(~t ~@k))
14:48kotarakAnd used in a macro like that: (defmacro y [& k] (x hash-map k))
14:48arohneroh. is quasi-quote allowed/good style in a non-macro context?
14:48kotarakThis worked before and is now broken.
14:48kotarakarohner: yes it is.
14:49kotarakThis is the correct macro: (defmacro y [& k] (x `hash-map k))
14:49kotarakNote the quote.
14:49kotarakI use the function is driver for several macros, parameterizing over the arguments since the basic function does always the same.
14:50kotarakSo the function is called from macros, hence returning the quasi-quoted form.
14:51gnuvince_You guys are going to need to refresh my memory. If I want to keep a cache of results and keep a piece of code function, I need to use CPS, right?
15:05arohnerlisppaste8: url
15:05lisppaste8To use the lisppaste bot, visit http://paste.lisp.org/new/clojure and enter your paste.
15:05lisppaste8arohner pasted "deftempl" at http://paste.lisp.org/display/69194
15:06arohnerweavejester posted that to compojure. I find it to be pretty awesome.
15:29cloggedwhich language is the run script of compojure written in? ruby?
15:31meredyddBash
15:31meredydd(then Clojure)
15:31meredydd(unless, of course, I'm hideously out of date)
15:57jgracinWhat's the correct procedure to set *print-length* in repl? In several examples, I've seen (set! *print-length* 100). But how can this work? (it doesn't for me)
15:58jgracingo to (in-ns 'clojure) and (def)?
15:58kotarakjgracin: Probably with (binding [*print-length* 100] (do-print-stuff))
15:59jgracinkotarak: but I want this to affect the repl.
15:59rhickeyjgracin: should work:
15:59rhickeyuser=> (set! *print-length* 10)
15:59rhickey10
15:59rhickeyuser=> (cycle [1 2 3])
15:59rhickey(1 2 3 1 2 3 1 2 3 1 ...)
16:00jgracinI'm (expectedly) getting: java.lang.IllegalStateException: Can't change/establish root binding of: *print-length* with set
16:00jgracinI must be doing something wrong...
16:00rhickeyjgracin: what repl?
16:01jgracinSlime
16:01rhickeyif it creates its own repl it needs to follow clojure.lang.Repl by making bindings for *print-length* etc, probably isn't yet
16:02jgracinoh, that's it. I didn't update Slime!
16:02jgracinswank-clojure, that is.
16:04jgracinright, it's not updated to bind *print-length* yet.
16:06ChouserI didn't have to make any manual changes for ClojureScript to support *print-length*. Re-gerenated boot.js, and it just worked.
16:33arohnerI have a macro that returns a fn. I'm trying to put a reflection type hint in it, but the compiler complains
16:34arohnerputting the reflection type hint for the same class works just fine on other defns in the same file
16:34rhickeyarohner: paste?
16:34arohnerlisppaste8: url
16:34lisppaste8To use the lisppaste bot, visit http://paste.lisp.org/new/clojure and enter your paste.
16:34lisppaste8arohner pasted "type hint?" at http://paste.lisp.org/display/69205
16:36arohnerjava.lang.IllegalArgumentException: Unable to resolve classname: HttpServletRequest
16:36rhickeyarohner: and if you fully qualify it?
16:37arohnerjava.lang.ClassNotFoundException: java.servlet.http.HttpServletRequest
16:37arohneroops
16:37arohnerone sec
16:38arohnerthat works
16:39cloggedim using win32, singlecore. i want to write a simple that uses agents. i have never written a program using threads. so i have never encountered these problems. what would be a good exercise-problem to solve?
16:40rhickeyarohner: you are in a regular quote there and aren't getting any import help
16:41arohnerbut I would be if I weren't in the regular quote?
16:42rhickeyyes, outside of quote and in ` names will be resolved
16:52arohnerrhickey: would you accept a patch that adds source file names to reflection warnings?
16:53rhickeyarohner: you mean *warn-on-reflection* warnings?
16:53arohneryes
16:57rhickeyyou just planning to grab SOURCE.get() at warning points?
16:58arohnerI was thinking of passing source into the ctors for the different Expr types
16:58cloggedhow do i do (info regex)?
16:58arohnersome of the expr types already do that, like InstanceMethodExpr
17:01fyuryuclogged: not sure if that's what you want: (find-doc "regex")
17:01rhickeyarohner: I'd rather not change any signatures right now
17:02rhickeyyou could add source reporting to static/instance methods (which already have source) and get most cases
17:03arohneryeah, I did that. It caught about half the cases
17:03arohnerI can do SOURCE.get()
17:04rhickeyarohner: you have a lot of field access?
17:04rhickeyor ctors?
17:05arohnernot sure yet. I'm guessing ctors
17:05kotarakHow do I fix reflection warnings for the gen-class? eg. I get a warning on (.state object) (where state is defined via :state). After adding a type hint (defn Foo-bla [#^Foo this] (.state this)), I get a more than one matching method found. It seems to assoc. But I'm puzzled. W/o type hint the code worked.
17:08rhickeykotarak: is it derived from another genclas class with state?
17:09kotarakrhickey: it implements clojure.lang.IPersistentMap and the class loader complains about assoc. (. this assoc k v) in assocEx.
17:09kotarakDeriving from Object
17:11rhickeykotarak: I'm confused - is the problem state or assoc?
17:11rhickeycan you paste something?
17:11kotarakI'm sorry, I confused myself. Yes. Just a sec.
17:14lisppaste8kotarak pasted "assoc: more than one matching method" at http://paste.lisp.org/display/69210
17:15kotarakrhickey: adding a type hint to this in the method definition gives the failure. Without it works.
17:15kotarakrhickey: the state things was confusion sorry.
17:18rhickeykotarak: and if you hint IPersistentMap instead of the concrete type?
17:18kotarakWill test....
17:19kotarakNo. Still complaining.
17:20cloggedanyone know python? i can do pat=re.compile(pattern) then pat.sub(topattern, phrase)
17:20cloggedis there similar function n java or clojure?
17:21rhickeykotarak: I can reproduce with a smaller case here - will look into it
17:21kotarakrhickey: thanks :)
17:31hoeckclogged: i don't know python, but there is http://clojure.org/other_functions (the re-* functions)
17:34meredyddclogged: clojure.contrib.str-utils/re-sub is probably what you're looking for
17:34meredyddOr, of course, (.replaceAll str "some regexp string")
17:34meredydd(although the latter doesn't precompile it - it's just a string, and the regexp gets recompiled every time)
17:38cloggedis there a help or doc function available at the repl? like (doc re) ?
17:38kotarak(doc doc) ;)
17:40rhickeyor (find-doc "re-")
17:41cloggedmeredydd: do i need to import something to use replaceAll?
17:42meredyddclogged: Nope; that method's already in the String class.
17:42kotarakclogged: note the leading dot: .replaceAll. This indicates a method of the following object.
17:42meredydd(.replaceAll str exp) is just sugar for (. str replaceAll exp) - it's just an ordinary method call.
17:44rhickeykotarak: fixed - svn rev 1080
17:44kotarakrhickey: fast as always. :) thanks.
17:45gnuvince_Is there an easy bool->int conversion?
17:46rhickey(if x 1 0)
17:48cloggedmeredydd: doens it need 3 params? the string to look in, the exp to be replcaed and then the new expr?
17:48clogged(.replaceAll str pat) -> java.lang.IllegalArgumentException: No matching method found: replaceAll
17:49meredyddclogged: You are, of course, correct. When the advice of a random fool on IRC and the API docs disagree, go with the API docs :)
17:49clogged:)
17:50meredyddhttp://tinyurl.com/5zcvfs
17:52clogged(.replaceAll "hoh" "[bcdfghjklmnpqrstvwxyz]o[bcdfghjklmnpqrstvwxyz]" "h")
17:52clogged"h"
17:52cloggedworks
18:00cloggedhmm somehow i need to know the letter of the match
18:01cloggedlike if i match hoh i need to know the first letter h so i can do -> h or if it is sos i should be ->
18:02lisppaste8clogged pasted "regex-replace" at http://paste.lisp.org/display/69211
18:34lisppaste8achim blomkvist annotated #69211 with "hoha" at http://paste.lisp.org/display/69211#1
19:08duck1123how do I concat a string and the value of a hash?
19:08duck1123it's not working for me
19:20Chouser"the" value?
21:03danlarkinbillc``: howdy
22:25danlarkinroom's dead on the weekend eh
22:28Chouserindeed
22:49RadioApeShotAnyone about using Slime with clojure?
22:49arbschtyes
22:50RadioApeShotI think I understand that if I put a (clojure/ns testspace) at the top of a file, then slime should automatically switch to that namespace when I evaluate a form from that file.
22:50RadioApeShotIs that right?
22:50RadioApeShotThis is how it works with packages in CL
22:50RadioApeShotMy clojure/slime alas seems to be confused
22:51RadioApeShotIt is trying to evaluate forms with C-X C-E in the user namespace.
22:51RadioApeShotRegardless of what the current namespace of clojure is on my REPL and regardless of namespace declarations at the top of the file.
22:53RadioApeShotSo if I have like (clojure/ns testspace (:use provides.foldl)) at the top of my file
22:53RadioApeShotAnd a form that says (foldl cons '(4 5) '(1 2 3))
22:54RadioApeShotWhen I try to execute it with C-X C-E I get an error that user does not contain foldl, even if I manually change the namespace of the repl to testspace
22:54RadioApeShotIf I select a region which contains the namespace declaration AND the form I want to evaluate, then C-X C-R works.
22:55RadioApeShotAlso regardless of the state of the REPL.
22:56arbschtyes, I can reproduce it. hm.
22:59RadioApeShotIt sort of makes dealing with namespaces a hassle.
22:59RadioApeShotHow weird is the slime/clojure/elisp ecosystem
22:59RadioApeShot?
22:59RadioApeShotDo I have a shot at figuring out the issue?
22:59RadioApeShotI am fluent in elisp and pretty conversant in CL.
23:00RadioApeShotIf someone could give a hint at where the general vicinity of the bug may be I can look at the code.
23:07arbschtRadioApeShot: if you call (ns testspace ...) in the repl, return to user, and then C-x C-e, does it work?
23:07RadioApeShotNo
23:07RadioApeShoteven if the repl is living in the namespace
23:07RadioApeShotApparently slime is switching back to user before evaluating the form
23:07RadioApeShotAnd then switching to whatever the repl is in
23:08RadioApeShotIf I copy/paste the form onto the repl inside the namespace, then that works.
23:08arbschtdo you have a recent swank-clojure?
23:08RadioApeShotOr, as I said above, if I select a region which contains the ns form and the form I am interested in and C-R
23:08RadioApeShotYeah, svn from a day or two ago.
23:08RadioApeShotNewest clojure, also pulled from svn
23:08RadioApeShotI think on thursday
23:09RadioApeShotMy slime might be a bit stale, but I rebuilt it with my SBCL using clbuild no more than a month ago.
23:09RadioApeShotAnd I think clbuild pulls from the latest version.
23:11arbschtI can't reproduce all of that behaviour; it only happens when the ns is not already known to the clojure instance
23:11akopaDoes clojure have a type-predicate for characters-- character? and char? aren't bound.
23:13ChouserApparently not. (instance? Character n)
23:14RadioApeShotarbscht: let me fool around with it some more
23:19RadioApeShotMaybe it has something to do with the fact that the working directory is not on the classpath?
23:19RadioApeShotDoes a namespace necessarily correspond to some directory structure on the classpath?
23:19RadioApeShotOr is it independent?
23:20ChouserIt's technically independant, but there are a few functions and macros that only work right if they match up.
23:20RadioApeShotIs there a way to dynamically extend the classpath from clojure?
23:22Chouser(doc add-classpath) but there are a few different classloaders, and I'm not not sure which are involved in which context.
23:23RadioApeShotWell, is my expectation of the behavior correct?
23:23RadioApeShotShould I expect slime to automatically contextualize forms to the package at the top of the file?
23:23RadioApeShotOr am I crazy/stupid?
23:23RadioApeShotI mean I might be crazy/stupid anyway.
23:23ChouserI don't know anything about emacs or slime, sorry.
23:24RadioApeShotHow...
23:24RadioApeShotHow do you do things without... emacs?
23:24Chouserhehe
23:25RadioApeShotWhat are you using?
23:25RadioApeShotMaybe I should use that.
23:26RadioApeShotI can Vim as well as Emacs.
23:26Chouseryeah, vim.
23:26RadioApeShotHm
23:26ChouserI have clojure in another terminal window, with rlwrap for history, and readline set up with vi keystrokes.
23:27RadioApeShotI did some wild shit with Vim and Screen back in the day.
23:27RadioApeShotBut eventually I just realized I was writing emacs.
23:27RadioApeShotSo I switched.
23:27RadioApeShotI use viper-mode most of the time.
23:27RadioApeShotBut not for lisp.
23:27Chouserfunny you should say that. There's a thing called "chimp" that does some vim/screen/clojure integration.
23:28Chouserlets you send clojure code from vim to your clojure prompt. It works ok.
23:29ChouserLast time I tried to use emacs, I was trying to do things the "emacs way".
23:29ChouserNext time I try to use emacs, I'll try to use it my own way. That probably means viper-mode.
23:30RadioApeShotEmacs is about doing it your way.
23:30RadioApeShotNot to give a pat recommendation
23:30RadioApeShotBut I have found emacs to be an almost religious experience.
23:30RadioApeShotEmacs Lisp literally flies out of my fingers
23:31Chouserbleh. I want to customize my editor in clojure, not in some ancient, namespace-less, dynamically bound lisp.
23:31RadioApeShotThe curve of usefulness for any given project in emacs starts negative and then becomes positive and rapidly approaches indispensable.
23:31RadioApeShotEmacs Lisp is not so awful.
23:31ChouserI don't believe you. ;-)
23:31RadioApeShotThe fact that variables can be buffer local helps
23:31Chouserhm.
23:31RadioApeShotAnd you can use the cl package for lexical scoping.
23:32RadioApeShotI mean the system is awful
23:32RadioApeShotAnd yet
23:32RadioApeShotAt the same time
23:32RadioApeShotI want every application to be like emacs.
23:32RadioApeShotPlus, the imperfection of EL makes it push you to just do what works
23:32RadioApeShotNot what is ideal
23:32RadioApeShotWrite the code, move on.
23:32ChouserIs it stupid to consider a new clojure-based editor? Is emacs with all its warts still so far ahead of the game?
23:32RadioApeShotLike a Samurai
23:32RadioApeShotIt is pretty far ahead.
23:33RadioApeShotI need interactive shells, at the very least.
23:33RadioApeShotThere is an emacs implemented in MIT-Scheme.
23:33RadioApeShotThis is attractive to me, since I am a schemer at heart.
23:33RadioApeShotBut it is not documented and the library of features is quite small.
23:33RadioApeShotI don't have time to bring it up to speed.
23:33RadioApeShotSo I use emacs.
23:34RadioApeShotPlus, Scheme is too "do it right"
23:34RadioApeShotEmacs is very "do it now."
23:34RadioApeShotThere is something to be said for that.
23:34RadioApeShotOk
23:34RadioApeShotI have to turn in for the evening.
23:34RadioApeShotI have an engagement
23:34RadioApeShotWhich might resemble a date.
23:35Chouserah, very well. Enjoy yourself.
23:35RadioApeShotWith a very attractive blond
23:35RadioApeShotAnd I need rum.
23:39akopaThere are emacs implemented in most lisp (see also climacs, hemlock, etc.) GNU Emacs and XEmacs have usually been more featureful. Zemacs might be an excetion, but I've never used a Lisp Machine.
23:47akopanull?
23:48akopawhoops.. wrong buffer