LINUX.ORG.RU

Specifiers for keyword parameters

 , ,


0

2

Существует такой код

(defun make-test-bar-chart-drawing-object
(&key (pane-title "Example of a bar chart")
       title-position 
      (values *example-bar-chart-values*)
      (orientation :upward)
      (title-color :purple)
       ellipses 
      (colors '(:red :green :blue :black :purple))).....)
Не уверен, что здесь всё хорошо, переделал по http://www.lispworks.com/documentation/lw51/CLHS/Body/03_dad.htm подделал
(defun make-test-bar-chart-drawing-object
(&key ((:pane-title pane-title) "Example of a bar chart")
      ((:title-position title-position))
      ((:values values) "*example-bar-chart-values*")
      ((:orientation orientation) ":upward")
      ((:title-color title-color) ":purple")
      ((:ellipses ellipses))
      ((:colors colors) "'(:red :green :blue :black :purple)"))
      (values
      (format nil "pane-title ~A" pane-title)
      (format nil "title-position ~A" title-position)
      (format nil "values ~A" values)
      (format nil "orientation ~A" orientation)
      (format nil "title-color ~A" title-color)
      (format nil "ellipses ~A" ellipses)
      (format nil "colors ~A" colors)))

(make-test-bar-chart-drawing-object
:pane-title pane-title 
:title-position "title-position"
:values :values
:orientation :orientation
:title-color :title-color
:ellipses "ellipses"
:colors :colors)
выхлоп
"pane-title PANE-TITLE"             здесь не норм
"title-position title-position"
"values VALUES"                     здесь не норм
"orientation ORIENTATION"           здесь не норм
"title-color TITLE-COLOR"           здесь не норм
"ellipses ellipses"
"colors COLORS"                     здесь не норм
что не так? что упустил?



Последнее исправление: saufesma (всего исправлений: 1)

Почему там не норм? Код делает ровно то что написано. А что код должен делать по задумке автора - решительно непонятно, и текстом нигде явно не указано. Задавай конкретные вопросы по поведению кода. Почему в выводе буквы заглавные? Потому что аргументами передаются символы, которые по-умолчанию при чтении кода компилятором автоматически приводятся к верхнему регистру. В title-position и ellipses строчные потому что этими двумя аргументами передаются строки, а не символы.

Кстати, в статье из CLHS на которую в посте присутствует ссылка есть информация о том почему до исправлений код был (скорее всего) правильный, а после исправлений стал (скорее всего) неправильный. Прочитай ещё раз внимательно, если будет всё ещё непонятно - расскажу сам.

Gentooshnik ★★★★★
()
Ответ на: комментарий от Gentooshnik

Почему там не норм?

Погорячился вчера.

saufesma
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.