I think it would be great to submit the REPL mod, but it is not acceptable as it is, although, for the most part, it is pretty solid. Currently, a period as the first character switches both in and out of SJulia mode. Some advice from the REPL authors would be useful. I was not able to implement switching out of SJulia with backspace, you have to type the period again. Also, the mod introduces a bug that causes Julia to crash when greek symbols are entered in a certain context, even in normal Julia mode. I am not able to get command line completion to work in a clean way in SJulia. As Marcus suggested, making a general facility for passing input through a macro seems like the way to go. It probably would not be too hard for someone who understands the REPL code. I might find time to do it, with some help.
--John El lunes, 20 de abril de 2015, 20:08:17 (UTC+2), Viral Shah escribió: > > It would be great to have the REPL.jl fork submitted as a PR. Even if it > is not accepted, something good will certainly come out of it. > > -viral > > > > > On 20-Apr-2015, at 11:34 pm, Marcus Appelros <[email protected] > <javascript:>> wrote: > > > > Currently some modifications to REPL.jl are needed, there is a fork > > made which does exactly that. > > > > Am trying to test some of the examples in the SJulia readme, keep in > > mind that this is on a old sourcebuilt 0.4 master. > > > > ``` > > julia> m= @ex Expand((a+b)^10) > > Expand((a + b) ^ 10) > > > > julia> m[2] > > ERROR: BoundsError() > > in getindex at /home/quin/SJulia/src/mxpr_type.jl:267 > > ``` > > > > Apparently the only method found is: > > > > ``` > > julia> t= @ex (a+b)^10 > > (a + b) ^ 10 > > > > julia> typeof(t) > > Mxpr{Power} > > > > julia> tt=SJulia.mxpr(:Expand,t) > > Expand((a + b) ^ 10) > > > > julia> ttt=typeof(tt) > > Mxpr{Expand} > > > > julia> methods(SJulia.apprules,(ttt,)) > > 1-element Array{Any,1}: > > apprules(x) at /home/quin/SJulia/src/apprules.jl:9 > > ``` > > > > Which is set to equal x. Also there's this: > > > > ``` > > julia> function f(n);@ex Expand((a+b)^n);end > > f (generic function with 1 method) > > > > julia> f(3) > > Expand((a + b) ^ n) > > ``` > > > > The Fibbonacci example does work. > > > > On 20 April 2015 at 19:14, Viral Shah <[email protected] <javascript:>> > wrote: > >> Would it be possible to install SJulia as a Julia package, and switch > >> between SJulia and Julia - kind of like how we have the help> and the > shell> > >> prompts, which can be activated with ? and ; > >> > >> -viral > >> > >> > >> On Monday, April 20, 2015 at 5:46:08 PM UTC+5:30, [email protected] > >> wrote: > >>> > >>> Here is SJulia > >>> > >>> https://github.com/jlapeyre/SJulia > >>> > >>> sjulia> f = (x^y + y^z + z^x)^3 > >>> (x ^ y + y ^ z + z ^ x) ^ 3 > >>> > >>> sjulia> f = (x^y + y^z)^3 > >>> (x ^ y + y ^ z) ^ 3 > >>> > >>> sjulia> g = Expand(f) > >>> x ^ (3 * y) + 3 * (x ^ (2 * y)) * (y ^ z) + 3 * (x ^ y) * (y ^ (2 * > z)) + > >>> y ^ (3 * z) > >>> > >>> SJulia is very close in spirit to Mathematica (Wolfram). This is more > or > >>> less a language written in Julia, > >>> although it can be made to communicate well with Julia. From the > user's > >>> perspective, there are advantages and disadvantages to > >>> implementing symbolic capability as an extension to languages like > Julia > >>> or Python rather than as > >>> another language. I think it is possible to have a language that > supports > >>> both. > >>> > >>> Also, CAS can describe various software tools that are designed to do > very > >>> different things. For instance, a CAS may be intended to implement > more or > >>> less mathematical rigor. It may have a hierarchy of computer language > types > >>> meant to represent mathematical objects. Or > >>> it may (like Mathematica, Maple, and Maxima) be based on 'expressions' > >>> that are essentially devoid of meaning. All of these distinctions, > >>> particularly the latter, regarding purpose, are typically confused in > >>> discussions on internet fora. > >>> > >>> I think that Julia is a great language for symbolic computation. Have > fun! > >>> --John > >>> > >>> > >>> On Sunday, April 19, 2015 at 7:47:34 PM UTC+2, Marcus Appelros wrote: > >>>> > >>>> Hi Kevin, thanks for the link! From the end of that thread: > >>>> > >>>> "Has anybody written pure Julia symbolic math for things like: > >>>> > >>>> f = (x**y + y**z + z**x)**100 > >>>> g = f.expand()" > >>>> > >>>> "As far as I know there is no Julia package which supports such > symbolic > >>>> expressions and manipulation." > >>>> > >>>> Now there is! > >>>> > >>>> Saw a more recent dev discussion calling for someone to write a > package > >>>> like this. Have looked through the package list many times and never > found > >>>> anything that appeared alike the vision of Equations, SymPy has some > common > >>>> functionality however certainly didn't start developing in Julia to > use > >>>> Python. > >>>> > >>>> Developing this code is indeed very enjoying and as more of the > planned > >>>> features become released a solid user base will be established, have > >>>> expanded the todolist with an impelling to read the discussion in > your link > >>>> so as to hasten the construction of such a foundation, as per your > >>>> recommendation. > >>>> > >>>> With love. <3 > >
