dec = \$(patsubst .%,%,\$1) add = \$1\$2 sub = \$(if \$(findstring \$2,\$1),\$(patsubst \$2%,%,\$1),) numeral = \$(words \$(subst .,. ,\$1)) mult = \$(subst .,\$2,\$1) 0 = 1 = . 2 = .. 3 = ... 4 = .... 5 = ..... 6 = ...... 7 = ....... 8 = ........ 9 = ......... \$(foreach i,0 1 2 3 4 5 6 7 8 9,\$(eval STDIN=\$(subst \$i,x\$(\$i).x,\$(strip \$(STDIN))))) conv = \$(eval n=\$(subst x,,\$(subst xx, ,\$1)))\$(call mult,..........,\$(word 1,\$n))\$(word 2,\$n) \$(foreach i,1 2 3 4 5 6 7 8 9 10 11 12,\$(eval v\$(i)=\$(call conv,\$(word \$(i),\$(STDIN))))) simplify = \$(eval a=\$(word 1,\$1))\$(eval b=\$(word 2,\$1))\$(call sub,\$(a),\$(b)). \$(call sub,\$(b),\$(a)). a1 = \$(call simplify,\$(v4) \$(v1)) a2 = \$(call simplify,\$(v5) \$(v2)) a3 = \$(call simplify,\$(v6) \$(v3)) a4 = \$(call simplify,\$(v7) \$(v1)) a5 = \$(call simplify,\$(v8) \$(v2)) a6 = \$(call simplify,\$(v9) \$(v3)) a7 = \$(call simplify,\$(v10) \$(v1)) a8 = \$(call simplify,\$(v11) \$(v2)) a9 = \$(call simplify,\$(v12) \$(v3)) z_mult = \$(eval a=\$(word 1,\$1))\$(eval b=\$(word 2,\$1))\$(eval c=\$(word 1,\$2))\$(eval d=\$(word 2,\$2))\$(call simplify,\$(call mult,\$(a),\$(c))\$(call mult,\$(b),\$(d)) \$(call mult,\$(a),\$(d))\$(call mult,\$(b),\$(c))) z_add = \$(eval a=\$(word 1,\$1))\$(eval b=\$(word 2,\$1))\$(eval c=\$(word 1,\$2))\$(eval d=\$(word 2,\$2))\$(a)\$(c) \$(b)\$(d) z_sub = \$(eval a=\$(word 1,\$1))\$(eval b=\$(word 2,\$1))\$(eval c=\$(word 1,\$2))\$(eval d=\$(word 2,\$2))\$(a)\$(d) \$(b)\$(c) z2n = \$(call sub,\$(word 1,\$1),\$(word 2,\$1)) a59 = \$(call z_mult,\$(a5),\$(a9)) a68 = \$(call z_mult,\$(a6),\$(a8)) a57 = \$(call z_mult,\$(a5),\$(a7)) a48 = \$(call z_mult,\$(a4),\$(a8)) a67 = \$(call z_mult,\$(a6),\$(a7)) a49 = \$(call z_mult,\$(a4),\$(a9)) s1 = \$(call z_mult,\$(a1),\$(call z_sub,\$(a59),\$(a68))) s2 = \$(call z_mult,\$(a2),\$(call z_sub,\$(a67),\$(a49))) s3 = \$(call z_mult,\$(a3),\$(call z_sub,\$(a48),\$(a57))) zans = \$(call z_add,\$(s1),\$(call z_add,\$(s2),\$(s3))) ans = \$(call sub,\$(word 1,\$(zans)),\$(word 2,\$(zans))) ans2 = \$(subst v,.,\$(subst .,,\$(subst ......,v,\$(ans)))) \$(info \$(call numeral,\$(ans2)))