Joe Marshall: Plaformer Game Tutorial
Planet Lisp
by
4d ago
I was suprised by the interest in the code I wrote for learning the platformer game. It wasn’t the best Lisp code. I just uploaded what I had. But enough people were interested that I decided to give it a once over. At https://github.com/jrm-code-project/PlatformerTutorial I have a rewrite where each chapter of the tutorial has been broken off into a separate git branch. The code is much cleaner and several kludges and idioticies were removed (and I hope none added ..read more
Visit website
Paolo Amoroso: Testing the Practical Common Lisp code on Medley
Planet Lisp
by
1w ago
When the Medley Interlisp Project began reviving the system around 2020, its Common Lisp implementation was in the state it had when commercial development petered out in the 1990s, mostly prior to the ANSI standard. Back then Medley Common Lisp mostly supported CLtL1 plus CLOS and the condition system. Some patches submitted several years later to bring the language closer to CLtL2 needed review and integration. Aside from these general areas there was no detailed information on what Medley missed or differed from ANSI Common Lisp. In late 2021 Larry Masinter proposed to evaluate the ANSI com ..read more
Visit website
Joe Marshall: You May Not Need That :around Method
Planet Lisp
by
3w ago
I’ve seen this “anti-pattern” a few times in CLOS code. A superclass ’super will have a subclass ’sub and there will be a primary method specialized to the superclass. (defmethod foo ((instance super) arg) (format t "~&Foo called on ~s." arg)) Then I’ll see an :around method defined on the subclass: (defmethod foo :around ((instance sub) arg) (format t "~&Start foo...~%") (call-next-method) (format t "~&End foo.~%")) The intent here is clearly that code in the method specialized on the subclass is invoked “around” the call to the method specialized on the superclass. Bu ..read more
Visit website
Joe Marshall: With- vs. call-with-
Planet Lisp
by
1M ago
In Common Lisp, there are a lot of macros that begin with the word “with-”. These typically wrap a body of code, and establish a context around the execution of the code. In Scheme, they instead have a lot of functions that begin with the words “call-with-”. They typically take a thunk or receiver as an argument, and establish a context around a call to the thunk or receiver. Both of these forms accomplish the same sort of thing: running some user supplied code within a context. The Scheme way accomplishes this without a macro, but “call-with-” functions are rarely used as arguments to higher ..read more
Visit website
Joe Marshall: Porting a Game from Java (update)
Planet Lisp
by
1M ago
I didn’t expect anyone would be interested, so I just pushed the code that I had with little thought about anyone trying to use it. It turns out that some people actually wanted to run it, so I polished off some of the rough edges and made it easier to get working. Feel free to email me if you have questions or suggestions ..read more
Visit website
Eugene Zaikonnikov: EURISKO lives
Planet Lisp
by
1M ago
When I wrote about EURISKO a few years before there hardly was an expectation of a follow-up. The system was a dusty legend with some cynical minds arguing whether it existed in the first place. However, Lenat's death in August last year has unlocked his SAILDART archives account. This has led to a thrilling discovery of both AM and EURISKO sources by WhiteFlame. In a further development, seveno4 has managed to adapt EURISKO to run on Medley Interlisp. While I marveled at the idea of discovery systems before I hadn't even considered ever running EURISKO myself as a possibility. Truly an Indian ..read more
Visit website
Joe Marshall: Porting a Game from Java
Planet Lisp
by
1M ago
I decided to learn about games, so I followed along with a tutorial by Kaarin Gaming. His tutorial was written in Java, but of course I used Common Lisp. I made no attempt to faithfully replicate his design, but I followed it closely in some places, less so in others. The resulting program was more or less a port of the Java program to Common Lisp, so it not very remarkable in and of itself. Certainly I don’t expect many people to be interested in reading beyond this point. It’s known that Java is wordy language and it shows in the end result. The tutorial had 3712 lines of Java code in 39 fil ..read more
Visit website
Vindarel: Oh no, I started a Magit-like plugin for the Lem editor
Planet Lisp
by
1M ago
Lem is an awesome project. It’s an editor buit in Common Lisp, ready to use out of the box for Common Lisp, that supports more languages and modes (Python, Rust, Elixir, Go, JavaScript, TypeScript, Haskell, Java, Nim, Dart, OCaml, Scala, Swift, shell, asm, but also markdown, ascii, JSON, HTML and CSS, SQL...) thanks to, in part, its built-in LSP support. I took the challenge to add an interactive interface for Git, à la Magit, because you know, despite all its features (good vim mode, project-aware commands, grep, file tree view and directory mode, multiple cursors, tabs...), there’s so much a ..read more
Visit website
Marco Antoniotti: A Rant about R and Python (and anything with a-lists, tuples and "dictionaries").
Planet Lisp
by
1M ago
R and Python come from Lisp (R for sure, Python will deny it). Early Lisp. Even before the first edition of "AI Programming" by Charniak, Riesbek and McDermott. At that time, there were a-lists and p-lists. Then Charniak, Riesbeck and McDermott taught us (not only them of course) to create records in Lisp. You know... those things like: DECLARE 1 STUDENT, 2 NAME CHAR (30), 2 SURNAME CHAR (50), 2 ID FIXED DECIMAL (8), 2 ADDRESS, 3 STREET CHAR (80), 3 NUMBER FIXED DECIMAL (5), 3 CITY CHAR (80), 3 PRST ..read more
Visit website
Eugene Zaikonnikov: Deannoyifying SLIME
Planet Lisp
by
2M ago
Over all these years I don't think I ever wanted to close all existing SLIME connections when attaching to a remote host. Similarly, the version mismatch between SWANK and SLIME frontend has never stopped me following through with connection. I did however fumbled with y/n confirmations plenty of times. The snippet below removes these interactive checks. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 (defun slime-check-version (version conn) (or (equal version slime-protocol-version) (equal slime-protocol-version 'ignore) (message (format "Versions differ ..read more
Visit website

Follow Planet Lisp on FeedSpot

Continue with Google
Continue with Apple
OR