{"id":665,"date":"2015-04-04T22:55:16","date_gmt":"2015-04-04T14:55:16","guid":{"rendered":"http:\/\/blog.xuhao1.me\/?p=665"},"modified":"2015-04-05T00:26:42","modified_gmt":"2015-04-04T16:26:42","slug":"%e7%94%a8mathematica%e5%86%99%e4%b8%80%e4%b8%aalisp%e8%a7%a3%e9%87%8a%e5%99%a8","status":"publish","type":"post","link":"http:\/\/blog.xuhao1.me\/?p=665","title":{"rendered":"\u4f7f\u7528\u56db\u5341\u884cMathematica\u5199\u4e00\u4e2aLISP\u89e3\u91ca\u5668"},"content":{"rendered":"<h2>\u4ee3\u7801<\/h2>\n<pre><code>Eval[cmd_] := (\n   If[Length[cmd] &gt; 1,\n    car[cmd] @@ cdr[cmd]\n    , cmd]\n   );\ncar[lis_] := lis[[1]];\ncdr[lis_] := (If[Length[lis] &lt;= 1, {},\n    lis[[2 ;; Length[lis]]]]);\nresetcar[lis_] := Clear[Evaluate[car[lis]]];\nlambda[params_, expr_] :=\n  (\n   Module\n     [params, params = List[##];\n     Eval[expr]] &amp;\n   );\nsetfunc[name_, expr_, params_] := (\n   DownValues[Evaluate[name]] = HoldPattern[\n       Evaluate[name @@ params]] -&gt;\n      Eval[expr];\n   );\ndefine[funclis_, expr_] :=\n  (\n   resetcar[funclis];\n   Module[\n    {params, body},\n    setfunc[car[funclis], expr, cdr[funclis]];\n    ];\n   );\ndefwithrule[rule_] := (\n   DownValues[Evaluate[car[rule]]] = HoldPattern[\n       Evaluate[car[rule] @@ rule[[2]]]\n       ] -&gt; Eval[rule[[3]]];\n   );\ndefsyntax[rules_] := (\n   resetcar[rules];\n   defwithrule \/@ cdr[rules];\n   );\n\neval[cmds_] := Eval \/@ cmds;\n<\/code><\/pre>\n<p>\u4ee5\u4e0a\u5305\u542b\u4e86lambda\u7b97\u5b50\uff0c\u5b8f\u58f0\u660e\u548c\u5c55\u5f00\u7b49\u3002<\/p>\n<p>\u4e0a\u9762\u662f\u4ee3\u7801\uff0c\u4e0b\u9762\u662f\u4e00\u4e2a\u4f8b\u7a0b<\/p>\n<pre><code>eval[\n {\n  {Set, haohao, 2},\n  {define, {plus, c_, d_}, {Plus, c, d}},\n  {plus, 3, 2},\n  {defsyntax,\n   {prefix,\n    {prefix,\n     {a_, plus, b_},\n     {plus, a, b}}\n    }\n   },\n  {Integrate, x^2, {x, 0, haohao}},\n  {prefix, 2, plus, 10},\n  {Plot, Sin[x\/2], {x, 1, 100} },\n  {Sin, \\[Pi]}\n  }\n ]\n<\/code><\/pre>\n<p><a href=\"http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2015\/04\/\u5c4f\u5e55\u5feb\u7167-2015-04-04-\u4e0b\u534811.46.14.png\"><img loading=\"lazy\" src=\"http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2015\/04\/\u5c4f\u5e55\u5feb\u7167-2015-04-04-\u4e0b\u534811.46.14.png\" alt=\"\u5c4f\u5e55\u5feb\u7167 2015-04-04 \u4e0b\u534811.46.14\" width=\"941\" height=\"781\" class=\"alignnone size-full wp-image-671\" srcset=\"http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2015\/04\/\u5c4f\u5e55\u5feb\u7167-2015-04-04-\u4e0b\u534811.46.14.png 941w, http:\/\/blog.xuhao1.me\/wp-content\/uploads\/2015\/04\/\u5c4f\u5e55\u5feb\u7167-2015-04-04-\u4e0b\u534811.46.14-300x248.png 300w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>\u660e\u5929\u518d\u5199\u8bf4\u660e\u597d\u4e86<\/p>\n<p>\u5176\u5b9e\uff0cmathematica\u6240\u7528\u7684wolfram\u8bed\u8a00\u7684\u672c\u8d28\u5c31\u662fLISP\u4e86\u5566\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee3\u7801 Eval[cmd_] := ( If[Length[cmd] &gt; 1, car[cmd] @@ c &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.xuhao1.me\/?p=665\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201c\u4f7f\u7528\u56db\u5341\u884cMathematica\u5199\u4e00\u4e2aLISP\u89e3\u91ca\u5668\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/posts\/665"}],"collection":[{"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=665"}],"version-history":[{"count":11,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/posts\/665\/revisions"}],"predecessor-version":[{"id":677,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=\/wp\/v2\/posts\/665\/revisions\/677"}],"wp:attachment":[{"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=665"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.xuhao1.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}