2025/03/17

Newest at the top

2025-03-17 18:19:33 +0100 <haskellbridge> <Bowuigi> Aren't list/apply semantics the point of lisp?
2025-03-17 18:19:32 +0100 <EvanR> like there is overlap in the ideas somehow
2025-03-17 18:19:31 +0100euleritian(~euleritia@95.90.214.149) (Read error: Connection reset by peer)
2025-03-17 18:19:23 +0100 <EvanR> that sometimes a macro would work when a function would work is interesting to me
2025-03-17 18:18:57 +0100skiwould dispute the antecedent of the implication
2025-03-17 18:18:03 +0100Googulator(~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu)
2025-03-17 18:17:54 +0100 <c_wraith> I think a better criticism is the loop macro's existence
2025-03-17 18:17:48 +0100Googulator(~Googulato@2a01-036d-0106-4b74-b88c-ff83-9891-e272.pool6.digikabel.hu) (Quit: Client closed)
2025-03-17 18:17:47 +0100 <haskellbridge> <Liamzee> if ergonomic macros are the point of lisp, it's a very bad sign when lisp programmers state "never use a macro when a function will do"
2025-03-17 18:17:31 +0100acidjnk(~acidjnk@p200300d6e71c4f06a07cb2b65789c630.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2025-03-17 18:16:59 +0100 <haskellbridge> <Liamzee> the criticism i read was that abuse of macros leads to dsl / edsl disease, where the codebase is too tightly coupled to its developers
2025-03-17 18:15:52 +0100 <ski> may i interest you in our lord and saviour, hygienic macros, Liamzee ?
2025-03-17 18:15:12 +0100 <mauke> which is closer to the way (list list) looks (i.e. no sigils)
2025-03-17 18:15:02 +0100 <mauke> in 'say STDOUT STDOUT', the first STDOUT refer to the IO slot, the second to the CODE slot
2025-03-17 18:14:10 +0100 <c_wraith> I remember basic used sigils to identify the types of variables. But the way in which it did so always made more sense to me.
2025-03-17 18:14:03 +0100 <mauke> sub STDOUT { "hello" } say STDOUT STDOUT;
2025-03-17 18:13:17 +0100 <haskellbridge> <Liamzee> afaik lisp is about macro programming, except that macro programming has been demonstrated to be a bad idea in many implementations
2025-03-17 18:12:47 +0100 <c_wraith> I mean, except insofar as the way perl uses those contexts makes no sense.
2025-03-17 18:12:26 +0100 <c_wraith> Oh, yeah. I just actually got around to reading the code portion and it made a lot more sense.
2025-03-17 18:12:01 +0100 <mauke> $foo is a scalar, @foo an array, %foo a hash, etc
2025-03-17 18:11:39 +0100 <mauke> a perl symbol has several different "slots", including SCALAR, ARRAY, HASH, CODE, IO, and FORMAT
2025-03-17 18:11:37 +0100 <geekosaur> parentetical purity was already destroyed by interlisp, that horse escaped the barn a long time ago 😛
2025-03-17 18:11:01 +0100 <mauke> ok, you got me :-)
2025-03-17 18:10:52 +0100 <EvanR> I'd say it's a much as joke as lisp-2 is
2025-03-17 18:10:41 +0100 <EvanR> oh
2025-03-17 18:10:39 +0100 <mauke> I didn't use /g!
2025-03-17 18:10:29 +0100 <EvanR> I'd say it's a much a joke a lisp-2 is xD
2025-03-17 18:10:09 +0100 <mauke> s/ as / a /
2025-03-17 18:10:04 +0100 <ski> presumably six separate namespaces, c_wraith
2025-03-17 18:10:02 +0100 <mauke> c_wraith: I'd say it's as much as joke as lisp-2 is
2025-03-17 18:09:55 +0100 <EvanR> yes clojure ruins the parenthetical purity
2025-03-17 18:09:41 +0100 <ski> (and, i think, Clojure too, with semantic difference ?)
2025-03-17 18:09:24 +0100 <ski> Racket already embraces different brackets, albeit only as a stylistic choice
2025-03-17 18:08:59 +0100 <c_wraith> lisp-6 is something I recognize as a joke (lisp-1 vs lisp-2), but I have no idea if it means something specific
2025-03-17 18:08:48 +0100 <EvanR> different bracket syntax would disturb the parenthetical purity of the lisp syntax
2025-03-17 18:08:25 +0100 <ski> (or `$(bar [e| foo |])' or somesuch, perchance)
2025-03-17 18:07:46 +0100euleritian(~euleritia@95.90.214.149)
2025-03-17 18:07:31 +0100 <ski> yes
2025-03-17 18:07:19 +0100 <ski> it's correct that you can't just replace `foo' by its definition in `(bar foo)', if `bar' is a macro, which could lead one to want to use e.g. a different bracket syntax for special forms and macro invokations, than for procedure calls
2025-03-17 18:07:09 +0100 <mauke> in a lisp-6 like perl, sub list($list, @list) { my %list = map +($_ => $list), @list; \%list } is perfectly cromulent code
2025-03-17 18:07:03 +0100euleritian(~euleritia@95.90.214.149) (Read error: Connection reset by peer)
2025-03-17 18:05:45 +0100euphores(~SASL_euph@user/euphores) euphores
2025-03-17 18:05:09 +0100 <ski> even without macros, things tend to need to be interpreted in context. `(a,b)' in an expression context, means something else than in a type context. in one context `Foo' could be a module, while in another it could be a type constructor, or a data constructor in yet another. in Lisp-2's, like Common Lisp, `(lambda (list) (list list))' is a procedure constructing a singleton list from its input argument
2025-03-17 18:04:10 +0100euleritian(~euleritia@95.90.214.149)
2025-03-17 18:03:56 +0100jespada(~jespada@2800:a4:22cd:2500:4d25:68ba:28dd:cc11) jespada
2025-03-17 18:03:52 +0100euleritian(~euleritia@dynamic-176-006-138-112.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2025-03-17 18:02:17 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-03-17 18:01:44 +0100 <EvanR> "let over lambda" my ass
2025-03-17 18:01:29 +0100target_i(~target_i@user/target-i/x-6023099) target_i
2025-03-17 18:01:25 +0100 <EvanR> but it's a lisp weenie!