[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:05856] format



やまもとです。今年もよろしくおねがいします。

format関数を以下のように使用したいのですが、(func 0 "010106")の
場合に、エラーのダイアログが表示されます。

    ; p が 0 の時は、  'time' とだけ表示して欲しい
    ; p が 0 以外の時は 'time' と q の値を表示して欲しい
    
    (defun func (p q)
      (format nil "time~[~*~:; (~A)~]" p q))
    func
    
    (func 0 "010106")
    ["引数の指定位置が範囲外です"のダイアログ]
    
    (func 1 "010106")
    "time (010106)"

control-stringにもうひとつ出力指示を加えると
どちらの場合も期待通りに動作します。

    (defun func (p q r)
      (format nil "time~[~*~:; (~A)~] ~A" p q r))
    
    (func 0 "010106" " system")
    "time system"
    
    (func 1 "010106" " system")
    "time (010106) system"

この場合はcontrol-stringの書き方が悪いのでしょうか?>識者

----
    YAMAMOTO Taizo / 山本 泰三
        mailto:ymtz@xxxxxxxxxxxxxxx
        mailto:yamamoto@xxxxxxxxx
        http://www1.odn.ne.jp/ymtz/

Index Home