Advertisements

I’m getting started with Prolog, and decided to try the famous SEND+MORE=MONEY puzzle, as it seemed fairly straightforward. However, my implementation does find a result.

Can anyone see what I did wrong?

```
smm([S, E, N, D, M, O, R, Y]) :-
maplist(between(0, 9), [S, E, N, D, M, O, R, Y]),
Line1 is S*1000 + E*100 + N*10 + D,
Line2 is M*1000 + O*100 + R*10 + E,
Sum is M*10000 + O*1000 + N*100 + E*10 + Y,
Sum = Line1 + Line2.
```

I’m not sure this is even the best way to approach this puzzle, so please feel free to make any (constructive!) comments on my code.

### >Solution :

Just as you use `is`

to compute the arithmetic expressions for `Line1`

, `Line2`

and `Sum`

, you need to use it for `Line1 + Line2`

.