24 game/Solve: Difference between revisions
Content added Content deleted
m (→{{header|Quackery}}: tidied up) |
(→{{header|Picat}}: Added tags + removed space) |
||
Line 6,214: | Line 6,214: | ||
=={{header|Picat}}== |
=={{header|Picat}}== |
||
{{trans|Raku}} |
|||
<lang Picat>import util. |
<lang Picat>import util. |
||
Line 6,257: | Line 6,258: | ||
R := replace(R, F,T.to_string()) |
R := replace(R, F,T.to_string()) |
||
end, |
end, |
||
Res = R. |
Res = R.</lang> |
||
</lang> |
|||
Test: |
|||
{{out}} |
|||
<pre> |
<pre> |
||
Picat> main |
Picat> main |
||
Line 6,290: | Line 6,288: | ||
(8 * 6) / (7 - 5) |
(8 * 6) / (7 - 5) |
||
8 * (6 / (7 - 5)) |
8 * (6 / (7 - 5)) |
||
len = 24 |
len = 24</pre> |
||
</pre> |
|||
Another approach: |
Another approach: |
||
Line 6,303: | Line 6,299: | ||
_ = findall(Expr, solve_num2(Nums,Target)), |
_ = findall(Expr, solve_num2(Nums,Target)), |
||
nl. |
nl. |
||
solve_num2(Nums, Target) => |
solve_num2(Nums, Target) => |
||
Line 6,342: | Line 6,337: | ||
check(A,X,B,Y,C,Z,D,Target,Expr) => |
check(A,X,B,Y,C,Z,D,Target,Expr) => |
||
Expr = [A,X,"(","(",B,Y,C,")", Z,D,")"].to_string2(), |
Expr = [A,X,"(","(",B,Y,C,")", Z,D,")"].to_string2(), |
||
Target =:= Expr.eval(). |
Target =:= Expr.eval().</lang> |
||
</lang> |
|||
{{out}} |
|||
Test: |
|||
⚫ | |||
<pre> |
|||
⚫ | |||
6*(5+(7-8)) = 24 |
6*(5+(7-8)) = 24 |
||
6*(7+(5-8)) = 24 |
6*(7+(5-8)) = 24 |
||
Line 6,366: | Line 6,358: | ||
8/((7-5)/6) = 24 |
8/((7-5)/6) = 24 |
||
(6*8)/(7-5) = 24 |
(6*8)/(7-5) = 24 |
||
(8*6)/(7-5) = 24 |
(8*6)/(7-5) = 24</pre> |
||
</pre> |
|||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |