Thread View: fj.lang.lisp
2 messages
2 total messages
Started by Nobita
Tue, 31 Mar 1998 00:00
Re: MS-DOS 動作可能な LISP を探しています。
Author: Nobita
Date: Tue, 31 Mar 1998 00:00
Date: Tue, 31 Mar 1998 00:00
29 lines
1644 bytes
1644 bytes
| (setq xx '( A1 A2 A3 A4 .....))
|
| でxxのリスト(?)のA1/A2/A3......の値をA1をB1/A2をB2/A3をB3に置き換えを行う
| 場合についてどの様に行えば良いのでしょうか?(イメージは通常の配列処理です)
|
| A1については
|
| (setq xx (cons 'B1 '(cdr xx)) )
|
| で、xxのリストは(B1 A2 A3 A4
| ....)となるのは、理解できたのですが、関数として
| A2または、A3....の置き換えを実現する場合、どの様に考えれば良いのか悩んで
| います。 お手数ですが、ヒントを教えて頂けましたら幸いです。
まず、一つの要素を置換する関数を考えましょう。
そのような関数ができれば、あとはその関数をすべての要素に施せばいいのです。
すべての要素に同じ関数を施すには、よく下のような関数が用いられます。
(非破壊的な場合)
(defun foo (x)
(cond ((null x) nil)
(t (cons (bar (car x)) (foo (cdr x))))))
ヒントになりましたでしょうか?
高橋毅弘 <E-mail:takahash@hitachi-ms.co.jp>
Re: MS-DOS 動作可能な LISP を探しています。
Author: KURODA Hisao / くろだ ひさお
Date: Tue, 31 Mar 1998 00:00
Date: Tue, 31 Mar 1998 00:00
17 lines
1288 bytes
1288 bytes
In article <6fpoou$k89$1@maingate.hitachi-ms.co.jp> "Nobita" <takahash@hitachi-ms.co.jp> writes: | すべての要素に同じ関数を施すには、よく下のような関数が用いられます。 | (非破壊的な場合) | | (defun foo (x) | (cond ((null x) nil) | (t (cons (bar (car x)) (foo (cdr x)))))) すべての要素に同じ関数を施すには普通はmapを使うと思います。 (mapcar #'bar x) ;;; $Id: .signature,v 1.3 1996/09/20 07:06:26 kuroda Exp $ (define (くろだ ひさお) (email kuroda@msi.co.jp))
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads