{"id":11649,"date":"2023-09-20T12:07:21","date_gmt":"2023-09-20T16:07:21","guid":{"rendered":"https:\/\/irreal.org\/blog\/?p=11649"},"modified":"2023-09-20T12:07:21","modified_gmt":"2023-09-20T16:07:21","slug":"zamansky-learning-elisp-10","status":"publish","type":"post","link":"https:\/\/irreal.org\/blog\/?p=11649","title":{"rendered":"Zamansky: Learning Elisp #10"},"content":{"rendered":"<p>Mike Zamansky has popped in with another Learning Elisp video before he departs on his vacation. He didn&rsquo;t want to start the next project and leave it hanging while he was away so this video covers some preliminaries. In particular, he covers some <a href=\"https:\/\/www.youtube.com\/watch?v=oszVyBvxmzg&amp;t=1s\">Elisp builtin data structures<\/a>. That includes lists, pairs, vectors, hash tables, and association lists.<\/p>\n<p>Vectors and hash tables have direct analogs in other languages and are probably familiar to all Irreal readers. Lists are simply linked lists and although they don&rsquo;t have a builtin analog in most other languages, the idea is a common and familiar.<\/p>\n<p>Zamansky explains how lists and pairs (single, unlinked cons cells) are implemented and then goes on to discuss the data structure that he&rsquo;s planning to use in the next project: association lists. They&rsquo;re sort of an intermediate structure, a bit like hash tables but lighter weight and not as fast. They&rsquo;re the ideal key\/value lookup method for small tables. It&rsquo;s \\(O(n)\\) instead of the \\(O(1)\\) that hash tables provide but it&rsquo;s perfect for relatively small lookup tables.<\/p>\n<p>The next project is going to be about inserting emoji into a buffer and Zamansky is planning on using an association list to map the emoji name to the actual symbol. We&rsquo;ll have to wait until Zamansky gets back from Europe for that but we can consider this video a teaser.<\/p>\n<p>The video is 16 minutes, 16 seconds long so plan accordingly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mike Zamansky has popped in with another Learning Elisp video before he departs on his vacation. He didn&rsquo;t want to start the next project and leave it hanging while he was away so this video covers some preliminaries. In particular, &hellip; <a href=\"https:\/\/irreal.org\/blog\/?p=11649\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[18],"class_list":["post-11649","post","type-post","status-publish","format-standard","hentry","category-general","tag-emacs"],"_links":{"self":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11649"}],"version-history":[{"count":1,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11649\/revisions"}],"predecessor-version":[{"id":11650,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11649\/revisions\/11650"}],"wp:attachment":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}