On Mon, Sep 23, 2024 at 02:30:31AM +0000, Heime wrote: > Is this the way to fill a hash table and print the values. > > (defvar marshal-fpln (make-hash-table :test 'equal) > "Hash table storing paths for different marshal components.") > > (defun marshal-insert () > > (puthash "MRSHL" marshal-waypt marshal-fpln) > (puthash "NAPLN" (concat marshal-waypt "/poleon") marshal-fpln) > (puthash "FLKTR" (concat rellana-waypt "/alkotr") marshal-fpln) > (puthash "GLXKS" (concat rellana-waypt "/xiakos") marshal-fpln) > (puthash "ARKTK" (concat rellana-waypt "/ritika") marshal-fpln) ) > > (defun torium-hash-table (hash-table &optional bfrn) > "Print HASH-TABLE to the buffer BFRN." > > (let* ( (bfname (or bfrn "Torium Hash Table")) > (dbuffer (get-buffer-create (concat "𒆳 " bfname))) ) > > (with-current-buffer dbuffer > (maphash (lambda (key value) > (let* ( (start (point)) ) > (insert (format " ━ %-8s" key)) > (insert (format "\n %s\n" value)))) > hash-table)))) > > I am getting the following error and cannot figure out how I can get out of it. > > > Debugger entered--Lisp error: (wrong-type-argument hash-table-p (("MRSHL") ("NAPLN") ("FLKTR") ("GLXKS") ("ARKTK" . t))) > maphash((closure (t) (key value) (let* ((start (point))) (insert (format " ━ %-8s" key)) (add-text-properties start (point) '(face (:foreground "green"))) (insert (format "\n %s\n" value)))) (("MRSHL") ("NAPLN") ("FLKTR") ("GLXKS") ("ARKTK" . t))) [rest of stack trace removed] Please, do some homework. This helps people help you (this is actually why I, at some point, stopped trying). Moreover, your (for the rest of us) inscrutable variable names aren't helping. Asking for programming help involves trying to help your helpers to understand your problem. I feel that you aren't doing this (for whatever reason). This will impair the quality of answers you get. And third, you really, really should try to gain some more understanding and practice with small Lisp code snippets. I have the impression that you only half-grasped very basic concepts and run into the same kind of problems time and again. Every bit you invest in the basics will pay back hundredfold (and will motivate your potential helpers). OK, that said, let's try to decode the two first lines of the error message (I reformat them to make them fit a civilised window width and to highlight their structure). Notes inline, prefixed with #. They are numbered to ref to them further down. > Debugger entered--Lisp error: # (1) The lisp run time has signalled an error, and the debugger is reporting that: > (wrong-type-argument hash-table-p # (2) Some function expects an argument satisfying the predicate hash-table-p and # has got instead... > (("MRSHL") ("NAPLN") ("FLKTR") ("GLXKS") ("ARKTK" . t))) # (3) ...something which looks a lot like an alist (the four first entries are associated # to nil, that's why they possibly look like singletons) Ad (2): Which function could that be? Look again at your code. The only one I see is that maphash, restated (and abbreviated) here: > (maphash (lambda (key value) ...) hash-table) It gets two args (which corresponds to the doc). The first one is the function to be iterated. The second is hash-table, which, according to the doc, is expected to be a hash table. Now where is that one coming from? It is passed as a param to your torium-hash-table: we don't see how you are calling that one. I conclude that (unless I've missed something) the error cause is outside the code snippet you show us. Cheers -- t