エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント1件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
リリカル☆Lisp開発日記 » Blog Archive » 長さの情報を持つ配列型とか
Common Lispでは変数の型を明示的に指定することができます。 (defun a3 (x) (declare (type (array * (... Common Lispでは変数の型を明示的に指定することができます。 (defun a3 (x) (declare (type (array * (3)) x)) x) こう書くと、関数a3の引数xの型は「長さ3の配列」という意味なります。 これをSBCLで動かしてやると (a3 123) ;=> ERROR ; The value 123 is not of type (VECTOR * 3). このように型の違うものでa3を呼び出すとエラーを検出できます。 このエラーの検出は実行時に行われています。 そのため、関数を挟むと、その関数を呼び出すまでエラーを検出できません。 ;;; a3に整数を渡す関数 (defun f1 (x) (declare (type integer x)) (a3 x)) ;=> 問題なく動作 (エラーを検出できない) こうなってしまう原因は「xの型は長さ3の配
2011/01/21 リンク