<aeth>
some are more polite and some are more biased
<Pixel_Outlaw>
Essentially all *ahem* /modern/ Lisps are Clojure so so you'd be led to believe.
<Pixel_Outlaw>
There are like 3 or so Clojure-likes so I'm trying to be distinct.
bilegeek_ has quit [Quit: Leaving]
<beach>
Pixel_Outlaw: There is no widely agreed-upon definition of "Lisp", so it is not clear whether Clojure or Scheme belong to that category. You could probably debate that in #lisp.
shka has quit [Read error: Connection reset by peer]
Lycurgus has joined #commonlisp
shka has joined #commonlisp
etimmons has quit [Server closed connection]
etimmons has joined #commonlisp
<aeth>
Scheme is absolutely a Lisp, as much as Common Lisp is. Clojure, now that's a source of many flamewars online, but nothing productive comes from that.
<beach>
aeth: There is no widely agreed-upon definition of "Lisp", so it is not clear whether Clojure or Scheme belong to that category. You could probably debate that in #lisp.
<Pixel_Outlaw>
Right, I was just trying to group the CL "family". But yeah fine for elsewhere.
<Lycurgus>
i overcame my digust at clojure
<jcowan>
Clojure is pretty recent, but then so is Picolisp, which is in some ways very traditional indeed
<Lycurgus>
*disgust
<aeth>
I suppose it depends on how inclusive your definition is. If your definition is the least inclusive definition, it would only include Common Lisp, particularly because Scheme identifies as "Scheme" not "Lisp". But that's nitpicking a lot imo.
<Pixel_Outlaw>
JSON flavored Lisp when written stylistically.
* Pixel_Outlaw
digresses
<Lycurgus>
as often happens due to a nice pkg, i dont recall which
shka has quit [Read error: Connection reset by peer]
<aeth>
but Common Lisp moved to #commonlisp from #lisp in part to avoid this sort of thing :-p
<Lycurgus>
but on the basis of larger principle than that
<Pixel_Outlaw>
Is uLisp fair game as it tries to be mostly CL compatible (despite being a Lisp-1 and having no keyword support) ?
<aeth>
fair game in #lisp probably
<Lycurgus>
everything gets a java version pretty much if it's sufficiently noteworthy and in this case not a bad one
<aeth>
yes, ABCL
chiselfu1e has quit [Ping timeout: 264 seconds]
<Pixel_Outlaw>
I keep wanting to flirt with ABCL but I think making a Swing window still takes some Java if I recall the tutorial.
<Lycurgus>
but i suggested it at the time of the freenode exodus on the basis of principle, in this case rectification of names
shka has joined #commonlisp
Lycurgus has quit [Quit: leaving]
cage has joined #commonlisp
Pixel_Outlaw has quit [Quit: Leaving]
chiselfuse has joined #commonlisp
mgl_ has joined #commonlisp
donleo has joined #commonlisp
shka has quit [Read error: Connection reset by peer]
amb007 has quit [Ping timeout: 246 seconds]
amb007 has joined #commonlisp
shka has joined #commonlisp
mgl_ has quit [Ping timeout: 252 seconds]
larix1 has quit [Remote host closed the connection]
msavoritias has joined #commonlisp
mgl_ has joined #commonlisp
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
skeemer has quit [Quit: WeeChat 4.1.1]
attila_lendvai has joined #commonlisp
attila_lendvai has quit [Ping timeout: 252 seconds]
ronald has quit [Ping timeout: 255 seconds]
Lycurgus has joined #commonlisp
Lycurgus has quit [Changing host]
Lycurgus has joined #commonlisp
random-nick has joined #commonlisp
habamax has quit [Remote host closed the connection]
CO2 has quit [Quit: WeeChat 4.1.1]
cage has quit [Quit: rcirc on GNU Emacs 29.1]
tyson2 has joined #commonlisp
<mfiano>
Hello! I am designing something in a particular way, consisting of mixin classes intended to be uses or not by the user, to extend the application. Additionally, there are both internal default methods specialized to the mixin class that cover any subclassing, and also generic functions with no methods, or just auxiliary methods doing some type checking, expecting the user to provide methods
<mfiano>
when they use such a mixin, in accordance with the eventual protocol documentation. Now, it turns out this is not enough in some cases, and it would be better if I enforced the fact that all required generic functions for a mixin be implemented, if that mixin is to be a superclass for an object that exists in this (runtime simulation). I am thinking of just defining the appropriate method on
<mfiano>
i-i or s-i and calling methods with known valid inputs, handling conditions, and signalling or restarting with inputs that can be derived from the runtime state. What other alternatives do I have here?
luis has joined #commonlisp
lagash has quit [Ping timeout: 246 seconds]
Lycurgus has quit [Quit: leaving]
svartur-hrafn has joined #commonlisp
dcb has joined #commonlisp
Meritamen has joined #commonlisp
Meritamen has quit [Remote host closed the connection]
ronald has joined #commonlisp
amb007 has quit [Ping timeout: 264 seconds]
pve has joined #commonlisp
luna-is-here has quit [Server closed connection]
luna-is-here has joined #commonlisp
yitzi has joined #commonlisp
asarch has joined #commonlisp
Lycurgus has joined #commonlisp
Lycurgus has quit [Changing host]
Lycurgus has joined #commonlisp
certainty has quit [Read error: Connection reset by peer]
molson has quit [Ping timeout: 264 seconds]
certainty has joined #commonlisp
amb007 has joined #commonlisp
mgl_ has quit [Ping timeout: 246 seconds]
xlymian has quit [Ping timeout: 255 seconds]
lucasta has joined #commonlisp
dino_tutter has quit [Ping timeout: 264 seconds]
chomwitt has joined #commonlisp
mgl_ has joined #commonlisp
amb007 has quit [Ping timeout: 255 seconds]
amb007 has joined #commonlisp
xlymian has joined #commonlisp
Lycurgus has quit [Quit: leaving]
akonai has quit [Server closed connection]
akonai has joined #commonlisp
lagash has joined #commonlisp
tibfulv_ has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
<Shinmera>
I'm not sure I like such enforcement. It feels over-eager. To me it's a perfectly valid pattern to create an instance before implementing the full interface, and then gradually implementing and testing the interface with that instance. Your eager checks would prevent this.
lucasta has quit [Quit: Leaving]
X-Scale has joined #commonlisp
cage has joined #commonlisp
dom2 has quit [Ping timeout: 246 seconds]
jmdaemon has quit [Ping timeout: 246 seconds]
xlymian has quit [Read error: Connection reset by peer]
jonatack has quit [Read error: Connection reset by peer]
jonatack has joined #commonlisp
Pirx has quit [Remote host closed the connection]
Pirx has joined #commonlisp
jfb4 has quit [Server closed connection]
jfb4 has joined #commonlisp
Fade has quit [Changing host]
Fade has joined #commonlisp
<mfiano>
Yes, I admit I dislike abstract classes and such in 'modern languages' for the same reasons, but this is sort of a niche case I fell into.
e3d3 has joined #commonlisp
<e3d3>
I'm reading the "Common Lisp hyperspec" about formatted output but can't find how to use v in place of a prefix parameter to a directive for the FORMAT function.
<e3d3>
I know from an example that (format nil "~v@t" 3) print 3 spaces but what else can I use instead of t ?
<mfiano>
(format nil "~va4" 15 3) ;=> "3 4"
<mfiano>
or ~d would be more appropriate there, but whatevs
<gilberth>
Shinmera, mfiano: For my CLIM, which has protocols, I have macros that define protocol classes and protocol generic functions accompanied by a tool that can check protocols and shows me what I am missing. Enforcing this that runtime would make development practically impossible. You will start saying (defmethod foo-bar ((object foo-thingy)) (error "nyi")) just to get something up. Any better?
McParen has joined #commonlisp
<gilberth>
This is like with undefined functions. It's fine to punt no have come up with a function definition yet, but still write and compile a call to it. I often do that when developing. The compiler will warn about an undefined function and that's fine.
<e3d3>
mfiano: Can ~v print anything else than spaces ?
<yitzi>
e3d3: do you mean padchar?
<gilberth>
e3d3: It's not the ~v that prints spaces. There is no ~v to begin with. It's the ~a that prints spaces.
<e3d3>
gilberth: I thought that ~a prints the literal 3, and ~v adds 15 spaces.
<e3d3>
sorry I forgot the padchar
<gilberth>
You put the 'v' in a format directive in place of some parameter. Like the '10' in "~10D". When you say "~vD" instead that parameter is pulled from the arguments to FORMAT.
<e3d3>
thanks, I understand it better.
utis has joined #commonlisp
<e3d3>
gilberth, mfiano, yitzi thanks for helping
e3d3 has left #commonlisp [rcirc on GNU Emacs 27.1]
<gilberth>
The padcha can also be 'v'. Like ,(format nil "~10,,,v<foo~>" #\?)
<gilberth>
Or both. ,(defun funny-make-string (n ch) (format nil "~v,,,v<~>" n ch)) ,(funny-make-string 4 #\x)
<ixelp>
(defun funny-make-string (n ch) (format nil "~v,,,v<~>" n ch)) => FUNNY-MAKE-STRING, further (funny-make-string 4 #\x) => "xxxx"
Gleefre has joined #commonlisp
akonai has quit [Ping timeout: 260 seconds]
mgl_ has quit [Ping timeout: 246 seconds]
waleee has joined #commonlisp
svartur-hrafn has quit [Ping timeout: 255 seconds]
svartur-hrafn has joined #commonlisp
Lycurgus has joined #commonlisp
Lycurgus has quit [Changing host]
Lycurgus has joined #commonlisp
svartur-hrafn has quit [Ping timeout: 255 seconds]
svartur-hrafn has joined #commonlisp
dnhester26 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
luis has quit [Ping timeout: 264 seconds]
dino_tutter has joined #commonlisp
MelanieMalik has quit [Ping timeout: 240 seconds]
notzmv has joined #commonlisp
Lycurgus has quit [Quit: leaving]
svartur-hrafn has quit [Remote host closed the connection]
akoana has joined #commonlisp
Guest33 has joined #commonlisp
dbotton has quit [Server closed connection]
dbotton has joined #commonlisp
X-Scale has quit [Ping timeout: 250 seconds]
tyson2 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
utis has quit [Ping timeout: 255 seconds]
Pirx has quit [Remote host closed the connection]
pranavats has left #commonlisp [Disconnected: Replaced by new connection]
pranavats has joined #commonlisp
prokhor has quit [Remote host closed the connection]
tyson2 has quit [Ping timeout: 240 seconds]
McParen has left #commonlisp [#commonlisp]
borodust has quit [Server closed connection]
borodust has joined #commonlisp
asarch has quit [Quit: Leaving]
delyan_ has quit [Server closed connection]
delyan_ has joined #commonlisp
certainty has quit [Ping timeout: 264 seconds]
Pixel_Outlaw has joined #commonlisp
dnhester26 has quit [Remote host closed the connection]
Ellenor has joined #commonlisp
randomperson132 has joined #commonlisp
Ellenor is now known as MelanieMalik
attila_lendvai has joined #commonlisp
dnhester26 has joined #commonlisp
msavoritias has quit [Ping timeout: 252 seconds]
Guest33 has quit [Quit: Client closed]
certainty has joined #commonlisp
utis has joined #commonlisp
akoana has quit [Quit: leaving]
certainty has quit [Ping timeout: 260 seconds]
tyson2 has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 29.1]
avocadoist has quit [Ping timeout: 252 seconds]
dom2 has joined #commonlisp
xlymian has joined #commonlisp
thollief has quit [Quit: Leaving]
yitzi has quit [Remote host closed the connection]
Lycurgus has joined #commonlisp
d4ryus has quit [Server closed connection]
d4ryus has joined #commonlisp
svartur-hrafn has joined #commonlisp
anticrisis has joined #commonlisp
mht-wtf has quit [Server closed connection]
mht-wtf has joined #commonlisp
sebastian has joined #commonlisp
sebastian is now known as Guest9624
Guest9624 has left #commonlisp [#commonlisp]
anticrisis has quit [Read error: Connection reset by peer]
randm has quit [Server closed connection]
randm has joined #commonlisp
shka has quit [Ping timeout: 255 seconds]
Guest9624 has joined #commonlisp
Guest9624 is now known as Sebastian__
Sebastian__ is now known as sebastian_
anticrisis has joined #commonlisp
<sebastian_>
I have a small question. When is a list constant data and when is it mutable? For example, I get a warning for modifying constant data here: (let ((tmp '(1 2 3))) (setf (car tmp) 5) (print tmp))
xlymian has quit [Read error: Connection reset by peer]
certainty has joined #commonlisp
<Alfr>
sebastian_, that what ' (that's shorthand for QUOTE) returns is literal data.
<edgar-rft>
(let ((tmp (list 1 2 3)) ...) would be mutable
<sebastian_>
It told me to read 3.7.1, which says that data that comes from literals is not mutable. I should have read that before asking.
<Alfr>
sebastian_, also self-evaluating things appearing in source are literal; so stings and objects you might compute using a reader macro.
<waleee>
in that particular example let* would also be nice if you only mutatate it once
<sebastian_>
edgar-rft: thanks for the alternative. I had considered (quote (1 2 3)) and (list 1 2 3) interchangeable until now, but they're not.
<sebastian_>
Alfr: that makes sense, thank you.
<edgar-rft>
no worries, nobody knows the entire spec out ofhis head :-)
anticrisis has quit [Read error: Connection reset by peer]
<aeth>
while it's not a standard and so it might not be of much use to implementers, there are C++ references online... there's no need for the go-to CL reference and the CL (draft) standard to be the same site with similar text
anticrisis has joined #commonlisp
<aeth>
(and the people who disagree with me here are likely to be CL implementers)
<randomperson132>
Forget the PDFs, I think cppreference.com is hard to read as well; albeit that's more on C++'s complex semantics
<aeth>
well, yeah
<aeth>
a C++ reference (and there are iirc 2-3 go-to ones) is going to be messy
<aeth>
as is a Perl one
<aeth>
too much emphasis on cryptic syntax, which isn't particularly searchable.