Discussion:
wrong number of arguments when launched interactively...
Jean-Christophe Helary
2018-11-25 13:35:33 UTC
Permalink
(beginner warning)

I'm trying to automate the creation of html templates to avoid link mistakes and I wrote this code today:

(defun dailyIndex (myDate)
(interactive (list
(read-number "Date: " (string-to-number (format-time-string "%d")))))
(setq baseCSSLink (format "../../../css/%s/baseCSS.css" (format-time-string "%Y")))
(setq dailyCSSLink (format "../../../css/%s/DailyCSS%s%s.css" (format-time-string "%Y") (format-time-string "%m") myDate))
(setq previousDay (- myDate 1))
(setq previousDate (format "%s%s" (format-time-string "%m") previousDay))
(setq previousDayLink (format "../../%s/%s/index.html" (format-time-string "%m") previousDay))
(setq nextDay (+ myDate 1))
(setq nextDate (format "%s%s" (format-time-string "%m") nextDay))
(setq nextDayLink (format "../../%s/%s/index.html" (format-time-string "%m") nextDay))
(setq todayDate (format "%s/%s/%s" (format-time-string "%Y") (format-time-string "%m") myDate))
(setq todayTemplate
(format "<html>
<head>
<title>%s</title>
<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" class=\"baseCSS\"/>
<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" class=\"dailyCSS\"/>
</head>
<body>
We're not there yet...
<p class=\"navigation\">
<a href=\"%s\" hreflang=\"en\" rel=\"prev\">%s</a>
<a href=\"../../../index.html\" hreflang=\"en\">index</a>
<a href=\"%s\" hreflang=\"en\" rel=\"next\">%s</a>
</p>
<p>%s, %s </p>
<p>
<h1>%s</h1>
<h2>%s</h2>

<p class=\"navigation\">
<a href=\"%s\" hreflang=\"en\" rel=\"prev\">%s</a>
<a href=\"../../../index.html\" hreflang=\"en\">index</a>
<a href=\"%s\" hreflang=\"en\" rel=\"next\">&s</a>
</p>
</body>
</html>"
"titre" baseCSSLink dailyCSSLink previousDayLink previousDate nextDayLink nextDate todayDate "..." "titre" "sous-titre" previousDayLink previousDate nextDayLink nextDate todayDate))

(write-region (dailyIndex) nil "~/Desktop/index.html"))

When run interactively, I always get a "wrong number of arguments" error. When I evaluate the internal expressions one by one, I never get this. I have no idea what is going on...


Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune
Stephen Berman
2018-11-25 14:06:58 UTC
Permalink
Post by Jean-Christophe Helary
(beginner warning)
(defun dailyIndex (myDate)
[...]
Post by Jean-Christophe Helary
(write-region (dailyIndex) nil "~/Desktop/index.html"))
When run interactively, I always get a "wrong number of arguments"
error. When I evaluate the internal expressions one by one, I never
get this. I have no idea what is going on...
You've defined a function, dailyIndex, that takes one obligatory
argument, myDate, but the last line of the function definition calls the
function without argument, that's the error. Did you mean to make that
line part of the function definition (and hence make it recursive)?

Steve Berman
Jean-Christophe Helary
2018-11-25 14:36:37 UTC
Permalink
Post by Stephen Berman
You've defined a function, dailyIndex, that takes one obligatory
argument, myDate, but the last line of the function definition calls the
function without argument, that's the error. Did you mean to make that
line part of the function definition (and hence make it recursive)?
Wow, thank you Stephen.

1) there is a problem with the parens, the defun stops at the last format
2) I was expecting (wrongly) that the (write-region (dailyIndex) nil "~/Desktop/index.html") expression would use the default value I had set. So instead I'm calling (write-region todayTemplate nil "~/Desktop/index.html") and that seems to work.

Thank you again. I spent a whole day putting all this together. That was quite an education. I'm glad there are sites like stackoverflow and the like because only with the elisp reference I was totally lost.

For ex, the description of (interactive) is absolutely not clear at all when you want a default value for code characters that do not include one, similarly, I was not at all considering (write-region) to get the result on a file...

But I'm glad I'm finishing the day with something that works.



Jean-Christophe Helary
-----------------------------------------------
http://mac4translators.blogspot.com @brandelune

Loading...