#AList

TrixStarT.Comtrixstart
2025-10-05

The
They whisper of a star,
A light born from a world afar.
A brilliant blaze, a glorious fire
To fuel a critic's faint desire.
But in that glow, a shadow cast
The fear this brilliant light won't last
A flower plucked, in fame's cruel hour
Doomed to possess a fleeting power.

2025-03-14

Saw the new Paul WS Anderson flick In The Lost Lands and fell asleep during the big climax. Which is a perfect encapsulation of the movie.

I also saw Opus the new thriller from A24 and it was a fun watch, but I don't think essential. If you like what A24 does and want to see John Malkovich knock it out of the park as a multi decade weirdo pop star then check it out.

#movies #AMC #AList #FilmMastodon #Opus #InTheLostLands

2025-01-31

Saw Soderbergh's The Presence just now. I didn't realize until I pulled up the ticket for my second movie of the day that it's in the same theater! Kind of a fun coincidence. I'm seeing Love Me next.

The Presence was shot well and was an interesting take on the haunted house story. I don't think it's a must see, but it was well crafted.

Got all three movies this week! Saw September 5 on Tuesday with a buddy.

#AMCAList #DoubleFeature #Soderbergh #Movies #FilmMastodon #Film #AMC #AList

KilleansRow 🇺🇲 🇺🇦🍀KilleansRow@mastodon.online
2024-01-27

Watch List Dept: When we get to that #DIY overwhelm and seriously just pay a farkin guy to do it :
#MatteoBertoli is #AList
youtu.be/r6BaoVHy4hU?si=f6-VWi

Susan Larson ♀️🏳️‍🌈🏳️‍⚧️🌈Susan_Larson_TN@mastodon.online
2023-11-17

#JonathanBailey says #Bridgerton #role helped him #promote #LGBTQ+ #community.

As well as telling more #LGBTQ+-#focused #stories, Bailey has been able to use his #Alist #status to promote #causes close to his heart – for example, his new #partnership with LGBTQ+ #young #people’s #charity #JustLikeUs.

thepinknews.com/2023/11/17/jon

JL Johnson :veri_mast:User47@vmst.io
2022-12-19

The reality of me not renewing #SouthwestAirlines #AList status this year is really sinking in. They just emailed offering to let me buy the #TQPs I need. I'd have to spend $1,350. Or I could just buy and fly $1,666 of business select fares in the next 12 days. LUV ya, Southwest but neither of them are happening. I'm a #FreeAgent for 2023.

K.J.HeritageMostlyWriting
2022-11-30

Why do they still make movies? I just don’t get all the excitement every time the next actor is lined up to do their time as the mysterious billionaire? Why not stop pretending billionaires give a shit and let Bruce Wayne buy or something? And let all the prisoners out of ?

2022-06-10

I try to emulate Clojure’assoc on Common Lisp’s alist. #commonlisp #lisp #assoc #alist

(defun assoc* (m k v &key test)
  (acons k
     v
     (remove-if (lambda (i)
              (if test
              (funcall test (car i) k)
              (eq (car i) k)))
            m)))
2021-09-06
Key-value data in Common Lisp

tags: #commonlisp #keyvalue #plist

I enjoy using key-value data in dynamic languages. For example, in Python, I can create key-value data for storing the metadata of a document as shown below. I don’t discuss why I don’t use struct, class, named tuple in this post.

doc_metadata = {"title": "The Rust Programming Language",  
                             "type": "book", 
                             "number-of-pages": 584, 
                             "authors": ["Steve Klabnik", 
                                                "Carol Nichols", 
                                                "contributions"]}

I can code read/write a value easily, for example:

# Write
doc_metadata["type"] = "text book"

# Read
print(doc_metadata["type"])

In Perl and Ruby, we can use Hash, which is almost the same thing as Dict in Python. In JavaScript, we can use an object.

Common Lisp is different. We can use a hash table, but it is not as convenient as Dict in Python.

(let ((doc-metadata (make-hash-table)))
  (setf (gethash :title doc-metadata) "The Rust Programming Language")
  (setf (gethash :type doc-metadata) :BOOK)
  (setf (gethash :number-of-pages doc-metadata) 584)
  (setf (gethash :authors doc-metadata) '("Steve Klabnik"
                                                                      "Carol Nichols" 
                                                                      "contributions")))

Besides construction, printing a hash table is not so convenient. Maybe one can create a function or macro to make creating/printing a hash table convenient. I still felt that I abused Common Lisp.

My code is usually too buggy when I keep mutating the same variable. So I prefer using an immutable data structure to prevent me from messing things up. Moreover, my key-value data usually do not have more than five keys. So I don’t strictly need to use an efficient data structure, namely, hash table or binary search tree. So I use alist (assosiation list). I can construct a list like below:

(setq doc-metadata '((:title . "The Rust Programming Language")
                     (:type . :BOOK)
                     (:number-of-pages . 542) 
                     (:authors . '("Steve Klabnik"
                                   "Carol Nichols" 
                                   "contributions"))))

IMO, it looks concise and convenient. We can retrieve key-value pair with a specific key using the assoc function, which I suppose it does linear search. Linear search can be slow. However, my alist doesn’t have a lot of keys.

Instead of replacing a value with another value, I can add a new key-value pair with an existing key, for example:

(setq another-doc-metadata (acons :type :TEXT-BOOK doc-metadata))

By retrieving the value of :type using assoc, we get the new value because assoc function retrieves the first key found in alist, for example:

(cdr (assoc :type another-doc-metadata))
;; OUTPUT => :TEXT-BOOK

However, with function calls instead of number/string literal, alist doesn’t look concise anymore, for example:

(list (cons :title (get-title x y z))
       (cons :type (get-type x))
       (cons :number-of-pages (get-number-of-pages a b c)) 
       (cons :authors (get-authors c d)))

plist looks much more concise, for example:

(setq doc-metadata (list :title (get-title x y z)
       :type (get-type x)
       :number-of-pages (get-number-of-pages a b c) 
       :authors (get-authors c d)))

I can retrieve a value corresponding to a key easily by getf function. For example:

(getf doc-metadata :type)

A new value can be replaced the old value by setf, example:

(setf (getf doc-mentadata :type) :TEXT-BOOK)

setf is different from acons since acons doesn’t mutate the existing list, setf does. Therefore plist is not exactly what I’m looking for.

Maybe the best way is using an Alexandria function for converting plist ot alist as Michał “phoe” Herda suggested.

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst