IF-Else in Prolog

D8ece9d65e67a158f31299ed44474d73
0
navred 101 Feb 10, 2005 at 22:32

Hi,
Is it possible to write grammar for If-else in Prolog?
If yes, Please can some one give me a rough idea of the grammar.

Thanks,
SUDHA

5 Replies

Please log in or register to post a reply.

F7a4a748ecf664f189bb704a660b3573
0
anubis 101 Feb 11, 2005 at 10:16

i’m not entirely sure what you mean… do you just want to know how conditionals in prolog work ?

D8ece9d65e67a158f31299ed44474d73
0
navred 101 Feb 13, 2005 at 00:35

Thanks for the reply, I am sorry as the question I framed was really not clear. Let me be a bit detailed:

I want to write a function in prolog for the if-else statement.
For ex,
if-instantiated( X,X) else if-instantiated (Y,Y) else if-instantiated( X\^Y, concat(X,Y):-
If the attribute X is instantiated( holds some value) then write X, else if the attribute Y holds some value then write Y, else if both the attributes X and Y hold some values, then append X and Y and write them.

I know how to write the concat function. But I am unaware of writing the function for the above if-else rule. please help me.
Thanks in advance,
SUDHA.P

F7a4a748ecf664f189bb704a660b3573
0
anubis 101 Feb 13, 2005 at 11:14

why do you open a new thread with exactly the same message you posted as a reply to this one ?

D8ece9d65e67a158f31299ed44474d73
0
navred 101 Feb 13, 2005 at 11:58

Oh Iam sorry. I need the soln very urgently n thought that a new thread wud serve the purpose…
PLease could you help me in writing the function for the above rule in prolog

F7a4a748ecf664f189bb704a660b3573
0
anubis 101 Feb 13, 2005 at 15:42

i’m not very good with prolog… almost never touched it but the following should work

test(X, Y) :-
    (  /* test value in X */ , /* test value in Y */ ->
        // do something
    ;  /* test value in X */ ->
        // do something else
    ;  /* test value in Y */ ->
        // do something different
    ).