🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Nobita Tue, 31 Mar 1998 00:00
Re: MS-DOS 動作可能な LISP を探しています。
#158
Author: Nobita
Date: Tue, 31 Mar 1998 00:00
29 lines
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 を探しています。
#159
Author: KURODA Hisao / くろだ ひさお
Date: Tue, 31 Mar 1998 00:00
17 lines
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