# coding=utf-8 id = 148 group = 'license_plates' number = 55 visible = True facts = None solution = '''\ conc148([], L, L). conc148([H|T], L2, [H|L]) :- conc148(T, L2, L). memb148(X, [X|_]). memb148(X, [_|T]) :- memb148(X, T). getdigits148([], []). getdigits148([X|T], [X|NT]) :- number(X), !, getdigits148(T, NT). getdigits148([_|T], NT) :- getdigits148(T, NT). joindigits148([X], [X]). joindigits148([X,Y|T], NT) :- XY is 10*X + Y, joindigits148([XY|T], NT). joindigits148([X,Y|T], [X|NT]) :- joindigits148([Y|T], NT). genexp148([Exp], Exp). genexp148(L, Exp) :- conc148(Before, [N1,N2|After], L), memb148(Op, ['+','-','*','/']), NExp =.. [Op, N1, N2], conc148(Before, [NExp|After], L1), genexp148(L1, Exp). firstMinus148(L, L). firstMinus148([X|T], [Y|T]) :- Y is -X. checkLicensePlate(LP, E1, E2) :- getdigits148(LP, Digs), conc148(L1, L2, Digs), joindigits148(L1, N1), joindigits148(L2, N2), firstMinus148(N1, MN1), firstMinus148(N2, MN2), genexp148(MN1, E1), genexp148(MN2, E2), E1 =:= E2. '''