{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "using Symata" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Differences from Wolfram\n", "\n", "Symata is similar to the Wolfram language. But, there are difference in notation and behavior." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Notation\n", "\n", "#### List\n", "Mathematica lists are delimited by `{ }`. Symata lists are delimited by `[ ]`" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/latex": [ "$$ \\left[ a,b,c \\right] $$" ], "text/plain": [ "L\"$$ \\left[ a,b,c \\right] $$\"" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[a,b,c]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Curly braces may also be used to enter lists in Symata. This may change in the future." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ \\left[ a,b,c \\right] $$" ], "text/plain": [ "L\"$$ \\left[ a,b,c \\right] $$\"" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{a,b,c}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Elements in a list may be separated by commas, as above. But, in Symata they may also be separated by a newline after a complete expression." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/latex": [ "$$ \\left[ a,c + d,\\text{\"cat\"},x^{2} + 2 \\ x \\ y + y^{2} \\right] $$" ], "text/plain": [ "L\"$$ \\left[ a,c + d,\\text{\\\"cat\\\"},x^{2} + 2 \\ x \\ y + y^{2} \\right] $$\"" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[\n", " a\n", " c + d\n", " \"cat\"\n", " Expand((x+y)^2)\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Functions\n", "\n", "Function arguments are delimited by `[ ]` in Mathematica. In Symata, arguments are delimited by `( )`" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ f \\! \\left( x \\right) $$" ], "text/plain": [ "L\"$$ f \\! \\left( x \\right) $$\"" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Infix notation for `Map`, `Apply`, `Rule`, `ReplaceAll`, etc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Map`" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ \\text{Map} \\! \\left( f,list \\right) $$" ], "text/plain": [ "L\"$$ \\text{Map} \\! \\left( f,list \\right) $$\"" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f % list" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ \\left[ f \\! \\left( a \\right) ,f \\! \\left( b \\right) ,f \\! \\left( c \\right) \\right] $$" ], "text/plain": [ "L\"$$ \\left[ f \\! \\left( a \\right) ,f \\! \\left( b \\right) ,f \\! \\left( c \\right) \\right] $$\"" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f % [a,b,c]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Apply`" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ \\text{Apply} \\! \\left( x,y \\right) $$" ], "text/plain": [ "L\"$$ \\text{Apply} \\! \\left( x,y \\right) $$\"" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x .% y" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ f \\! \\left( 1,2 \\right) $$" ], "text/plain": [ "L\"$$ f \\! \\left( 1,2 \\right) $$\"" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f .% g(1,2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Rule`\n", "\n", "`Rule` can be entered in the following ways." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ \\left[ a \\Rightarrow b,a \\Rightarrow b,a \\Rightarrow b \\right] $$" ], "text/plain": [ "L\"$$ \\left[ a \\Rightarrow b,a \\Rightarrow b,a \\Rightarrow b \\right] $$\"" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[Rule(a,b), a => b , a ⇒ b]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`RuleDelayed`" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ \\left[ a\\text{:>}b,a\\text{:>}b \\right] $$" ], "text/plain": [ "L\"$$ \\left[ a\\text{:>}b,a\\text{:>}b \\right] $$\"" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[RuleDelayed(a,b), a .> b]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`ReplaceAll`\n", "\n", "The short \"infix\" symbol for `ReplaceAll` is `./`. In Mathematica, it is `/.`.\n", "Also note the parentheses surrounding the rule." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$ \\left[ a,g \\! \\left( \\left[ 2 \\right] ,x \\right) ,g \\! \\left( \\left[ 3 \\right] ,b \\right) ,g \\! \\left( \\left[ 3 \\right] ,a + b \\right) \\right] $$" ], "text/plain": [ "L\"$$ \\left[ a,g \\! \\left( \\left[ 2 \\right] ,x \\right) ,g \\! \\left( \\left[ 3 \\right] ,b \\right) ,g \\! \\left( \\left[ 3 \\right] ,a + b \\right) \\right] $$\"" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[a, x^2, b^3, (a+b)^3] ./ ( x_^n_ => g([n],x))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Julia 0.6.0-dev", "language": "julia", "name": "julia-0.6" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "0.6.0" } }, "nbformat": 4, "nbformat_minor": 1 }