Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!husc6!mit-eddie!genrad!decvax!ucbvax!cbatt!cwruecmp!arun From: arun@cwruecmp.UUCP (Arun Lakhotia) Newsgroups: comp.lang.prolog Subject: Self reproducing prolog program Message-ID: <2073@cwruecmp.UUCP> Date: Sun, 3-May-87 23:33:31 EDT Article-I.D.: cwruecmp.2073 Posted: Sun May 3 23:33:31 1987 Date-Received: Tue, 5-May-87 00:46:24 EDT Reply-To: arun@cwruecmp.UUCP (Arun Lakhotia) Distribution: world Organization: CWRU Dept. of Computer Engineering, Cleveland, Ohio Lines: 30 > clone :- > listing(clone). May be i am being too picky. The above program would produce all clauses having head with functor 'clone', which could be more than re-producing if the program database have more clone/? clauses. I am not sure whether that violates the notion of self-reproducibility, ie the offspring subsumes the parent, and is not exactly equal but more :-) than equal. Just an observation here .. Another important requirement for a s/r program normally stated is that 'it should not make use of any knowledge of the implementation of the language, or the machine its implemented on'. Thus the s/r program should reproduce itself on any reasonable implementation of the language in question. With the given restriction, wouldn't it be necessary that any s/r program be free of Variables. As most implementations rename variables and show some _XXX kind of number on listing or write, it would be kind of difficult, (if not impossible) to write a generic s/r program. = arun