
(setq ary '((A . 1) (B . 2) (C . 3)))
で、perlでの
$ary{'A'}++; や
$ary{'B'}='X' や
$ary{'C'}=$ary{'A'}+5;
ということをさせたいのですが、LISPではどう書くのでしょうか?
(assoc 'A ary)
2
(assoc 'B ary)
X
(assoc 'C ary)
7
という結果が欲しいです。
また、一度にaryの内容を表示させる Data::DumperのようなものはLISPにあるのでしょうか?
処理系はCommon LISPです。
No.1ベストアンサー
- 回答日時:
(setq ary '((A . 1) (B . 2) (C . 3)))
(defun sample ()
;;(print ary)
(setf
(cdr (assoc 'A ary))
(1+ (cdr (assoc 'A ary))))
(setf
(cdr (assoc 'B ary))
(* 2 (cdr (assoc 'B ary))))
(setf
(cdr (assoc 'C ary))
"mogera")
;;(print ary)
)
c:\tmp\0519>clisp
i i i i i i i ooooo o ooooooo ooooo ooooo
I I I I I I I 8 8 8 8 8 o 8 8
I \ `+' / I 8 8 8 8 8 8
\ `-+-' / 8 8 8 ooooo 8oooo
`-__|__-' 8 8 8 8 8
| 8 o 8 8 o 8 8
------+------ ooooo 8oooooo ooo8ooo ooooo 8
Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2006
[1]> (load "sss.l")
;; Loading file sss.l ...
;; Loaded file sss.l
T
[2]> (pprint ary)
((A . 1) (B . 2) (C . 3))
[3]> (pprint #'sample)
#<FUNCTION SAMPLE NIL (DECLARE (SYSTEM::IN-DEFUN SAMPLE))
(BLOCK SAMPLE (SETF (CDR (ASSOC 'A ARY)) (1+ (CDR (ASSOC 'A ARY))))
(SETF (CDR (ASSOC 'B ARY)) (* 2 (CDR (ASSOC 'B ARY))))
(SETF (CDR (ASSOC 'C ARY)) "mogera"))>
[4]> (sample)
"mogera"
[5]> (pprint ary)
((A . 2) (B . 4) (C . "mogera"))
[6]>
No.2
- 回答日時:
以下はxyzzyでの実行結果です。
----
(setq ary '((A . 1) (B . 2) (C . 3)))
((A . 1) (B . 2) (C . 3))
(mapcar #'(lambda (list) (cond ((eq 'A (car list)) (cons (car list) (1+ (cdr list)))) (t list))) ary)
((A . 2) (B . 2) (C . 3))
----
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) ZWCAD CUIXとLISPの関係について 1 2022/09/28 03:07
- C言語・C++・C# Lispの、evalはどのようにすごいですか? 3 2022/09/12 21:46
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- その他(プログラミング・Web制作) python の課題で困ってます。 num=【1,2,8,6】という配列がある。 insert(2, 2 2023/05/24 21:56
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlで複数の値を返す良い方法...
-
Perlですが、redoの処理がいま...
-
プロトタイプ宣言のワーニング...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
<SELECT>タグの折り返し
-
formで特定のinputを送信しない...
-
ベーシックをVBに訳してください。
-
プルダウンを連続してだしたい...
-
シェルスクリプトで、空白(ス...
-
FindFirst を複数条件で検索
-
c言語 16進数の2進数への変換
-
複数列を持ったリストボックス...
-
リロード後にプルダウンの選択...
-
MSXMLでの属性の存在確認法
-
selectタグ内の特定のoptionの...
-
メモリをアドレスを直接指定し...
-
テーブル内でドロップダウンメ...
-
実行時エラー 3020の対策
-
特定の文字の個数を取得する簡...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで複数の値を返す良い方法...
-
プロトタイプ宣言のワーニング...
-
Pythonのプログラミングの質問...
-
LISPで連想配列の操作?
-
PERLの「!=」と「=~」 or...
-
print <<"_HTML_"の中でサブル...
-
Perlで自分自身の関数名を知る...
-
検索機能の作成で困っています
-
Pythonのマルチプロセスでの並...
-
CGI初心者です
-
Perlの書き方について
-
PerlでCabochaを呼び出すには(...
-
Perl 一定時間後にプログラムを...
-
繰り返し文における小数の挙動
-
Perl上でのMySQL文について
-
perlでtelnetクライアント
-
CLispのloop内の挙動について
-
threads を使ったマルチスレッ...
-
Perlですが、redoの処理がいま...
-
なんで?
おすすめ情報