Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!usenet.eel.ufl.edu!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!ix.netcom.com!netcom.com!ludemann
From: ludemann@netcom.com (Peter Ludemann)
Subject: Re: term_expansion
Message-ID: <ludemannD6LKBI.6xt@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
References: <3ltgng$gjn@erinews.ericsson.se>
Date: Thu, 6 Apr 1995 04:54:53 GMT
X-Original-Newsgroups: comp.lang.prolog
Lines: 34
Sender: ludemann@netcom3.netcom.com

In article <3ltgng$gjn@erinews.ericsson.se>,
Jonas Nygren <ehsjony@ehs.ericsson.se> wrote:
>
>I am implementing some syntax sugar for an OO add-on to prolog. I have some
>problem on how to expand the following:
>
>Input:
>
>f([a,b,c]).
>
>translates to:
>
>f(a).
>f(b).
>f(c).

Some Prologs allow returning a list from term_expansion.
So, your example could be done:

term_expansion(f(List), Flist) :-
	f_to_list(List, Flist).

f_to_list([], []).
f_to_list([X|Xs], [f(X)|Ys]) :-
	f_to_list(Xs, Ys).

(This could have been done more compactly with
a map_list, of course).

Allowing term_expansion to return a list is such a simple
extension, I'm surprised that all Prologs don't support it
by now.
-- 
Peter Ludemann                      ludemann@netcom.com
