The REPL code was designed to have new modes added externally. See e.g. the RunCxxREPL function here: https://github.com/Keno/Cxx.jl/blob/master/src/CxxREPL/replpane.jl
On Mon, Apr 20, 2015 at 5:04 PM, <[email protected]> wrote: > 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]> >> 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]> 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 >> >>
