Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on Julia. # # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at <http://angg.twu.net/e/julia.e> # or at <http://angg.twu.net/e/julia.e.html>. # See also <http://angg.twu.net/emacs.html>, # <http://angg.twu.net/.emacs[.html]>, # <http://angg.twu.net/.zshrc[.html]>, # <http://angg.twu.net/escripts.html>, # and <http://angg.twu.net/>. # ####### # «.julia-debs» (to "julia-debs") # «.the-julia-language» (to "the-julia-language") # «.julia-mode» (to "julia-mode") # «.julia-vterm» (to "julia-vterm") # «.julia-manual» (to "julia-manual") # «.learning» (to "learning") # «.multiline-comments» (to "multiline-comments") # «.catlab.jl» (to "catlab.jl") # «.plotting» (to "plotting") # «.Pkg» (to "Pkg") # «.Astro» (to "Astro") # «.comprehensions» (to "comprehensions") http://www.stochasticlifestyle.com/comparison-differential-equation-solver-suites-matlab-r-julia-python-c-fortran/ http://docs.juliadiffeq.org/latest/ https://gizmodo.uol.com.br/julia-linguagem-programacao/ ##### # # julia-debs # 2019sep20 # ##### # «julia-debs» (to ".julia-debs") # (find-zsh "installeddebs | sort | grep julia") # (find-zsh "availabledebs | sort | grep julia") # (find-sh "apt-cache showsrc julia") # https://packages.debian.org/source/sid/julia # https://en.wikipedia.org/wiki/Julia_(programming_language) # http://docs.julialang.org/ # https://julialang.org # https://github.com/JuliaLang/julia # (find-status "julia-common") # (find-vldifile "julia-common.list") # (find-udfile "julia-common/") # (find-status "julia-doc") # (find-vldifile "julia-doc.list") # (find-udfile "julia-doc/") # (find-status "julia") # (find-vldifile "julia.list") # (find-udfile "julia/") # (find-fline "/usr/share/doc-base/julia-manual") # (find-udfile "julia/examples/") # (find-fline "/usr/share/julia/base/") apti julia julia-doc https://syl1.gitbook.io/julia-language-a-concise-tutorial/ https://en.wikibooks.org/wiki/Introducing_Julia https://benlauwens.github.io/ThinkJulia.jl/latest/book.html https://juliadocs.github.io/Julia-Cheat-Sheet/ *** * (eepitch-julia) * (eepitch-kill) * (eepitch-julia) ##### # # the-julia-language # 2020aug07 # ##### # «the-julia-language» (to ".the-julia-language") # (code-pdf-page "thejulialang" "/usr/share/doc/julia/TheJuliaLanguage.pdf.gz") # (code-pdf-text "thejulialang" "/usr/share/doc/julia/TheJuliaLanguage.pdf.gz") # (find-thejulialangpage) # (find-thejulialangtext) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) zcat /usr/share/doc/julia/TheJuliaLanguage.pdf.gz > ~/tmp/TheJuliaLanguage.pdf # (code-pdf-page "thejulialanguage" "~/tmp/TheJuliaLanguage.pdf") # (code-pdf-text "thejulialanguage" "~/tmp/TheJuliaLanguage.pdf" 20) # (find-thejulialanguagepage) # (find-thejulialanguagetext) # (find-thejulialanguagepage (+ 20 182) "15.1 Summary of module usage") # (find-thejulialanguagetext (+ 20 182) "15.1 Summary of module usage") ##### # # julia-mode # 2019sep20 # ##### # «julia-mode» (to ".julia-mode") # (find-epackages "\n julia-mode " t) # (find-epackage 'julia-mode) # (find-epackage-links 'julia-mode) # (code-c-d "juliamode" "~/.emacs.d/elpa/julia-mode-20200717.1915/") # (find-juliamodefile "") # (find-juliamodefile "julia-mode-latexsubs.el") julia-mode 20190813.1326 available melpa Major mode for editing Julia source code julia-repl 20190908.1717 available melpa A minor mode for a Julia REPL julia-shell 20161125.1910 available melpa Major mode for an inferior Julia shell * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) julia * (eepitch-julia) * (eepitch-kill) * (eepitch-julia) # (find-udfile "julia/examples/") # (find-udfile "julia/examples/queens.jl") ##### # # julia-vterm # 2020oct27 # ##### # «julia-vterm» (to ".julia-vterm") # https://melpa.org/#/julia-vterm ##### # # julia-manual # 2019sep20 # ##### # «julia-manual» (to ".julia-manual") # (find-angg ".emacs.papers" "julia") # https://docs.julialang.org/en/v1/ # https://raw.githubusercontent.com/JuliaLang/docs.julialang.org/assets/julia-1.2.0.pdf (code-pdf-page "juliamanual" "$S/https/raw.githubusercontent.com/JuliaLang/docs.julialang.org/assets/julia-1.2.0.pdf") (code-pdf-text "juliamanual" "$S/https/raw.githubusercontent.com/JuliaLang/docs.julialang.org/assets/julia-1.2.0.pdf") ;; (find-juliamanualpage) ;; (find-juliamanualtext) ##### # # learning # 2019sep20 # ##### # «learning» (to ".learning") # https://docs.julialang.org/en/v1/manual/getting-started/# # https://julialang.org/learning/ # https://juliadocs.github.io/Julia-Cheat-Sheet/ ##### # # multiline-comments # 2019sep20 # ##### # «multiline-comments» (to ".multiline-comments") # https://docs.julialang.org/en/v1/base/punctuation/ # https://www.reddit.com/r/Julia/comments/2ex8og/how_do_multiline_comments_work/ # https://github.com/mitmath/1806/blob/master/julia/Julia-cheatsheet.pdf ##### # # Catlab.jl (can output Tikz code) # 2020feb16 # ##### # «catlab.jl» (to ".catlab.jl") # https://epatters.github.io/Catlab.jl/latest/ # https://epatters.github.io/Catlab.jl/latest/generated/graphics/tikz_wiring_diagrams/ # https://epatters.github.io/Catlab.jl/latest/generated/graphics/composejl_wiring_diagrams/ # https://epatters.github.io/Catlab.jl/latest/apis/doctrines/ # https://nbviewer.jupyter.org/github/epatters/Catlab.jl/blob/gh-pages/dev/generated/graphics/tikz_wiring_diagrams.ipynb # https://github.com/epatters/Catlab.jl # (find-git-links "https://github.com/epatters/Catlab.jl" "catlabjl") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # rm -Rfv ~/usrc/Catlab.jl/ cd ~/usrc/ git clone https://github.com/epatters/Catlab.jl cd ~/usrc/Catlab.jl/ export PAGER=cat git branch --list -a git for-each-ref git log --oneline --graph --all -20 # (find-fline "~/usrc/") # (find-fline "~/usrc/Catlab.jl/") # (find-gitk "~/usrc/Catlab.jl/") # (code-c-d "catlabjl" "~/usrc/Catlab.jl/") # (find-catlabjlfile "") # (find-catlabjlgrep "grep --color -nRH --null -e using *") https://github.com/epatters/Catlab.jl/blob/master/src/linear_algebra/GLA.jl ##### # # plotting # 2020aug07 # ##### # «plotting» (to ".plotting") # https://en.wikibooks.org/wiki/Introducing_Julia/Plotting ##### # # Pkg # 2020aug07 # ##### # «Pkg» (to ".Pkg") # (find-fline "~/.julia/packages/") # # julia> using Plots # ERROR: ArgumentError: Package Plots not found in current path: # - Run `import Pkg; Pkg.add("Plots")` to install the Plots package. # (find-thejulialanguagepage (+ 20 1063) "Pkg") # (find-thejulialanguagetext (+ 20 1063) "Pkg") # (find-thejulialanguagepage (+ 20 1066) "Adding packages") # (find-thejulialanguagetext (+ 20 1066) "Adding packages") # (find-thejulialanguagepage (+ 20 1068) "Developing packages") # (find-thejulialanguagetext (+ 20 1068) "Developing packages") # (find-thejulialanguagepage (+ 20 184) "Module file paths") # (find-thejulialanguagetext (+ 20 184) "Module file paths") # (find-thejulialanguagepage (+ 20 184) "push!(LOAD_PATH,") # (find-thejulialanguagetext (+ 20 184) "push!(LOAD_PATH,") * (eepitch-julia) * (eepitch-kill) * (eepitch-julia) using Plots import Pkg; Pkg.add("Astro") using Astro # https://en.wikibooks.org/wiki/Introducing_Julia/Modules_and_packages#Installing_modules Pkg.LOAD_PATH push!(Pkg.LOAD_PATH, "/home/edrx/usrc/Astro.jl") using Astro Pkg.status ##### # # Astro # 2020aug07 # ##### # «Astro» (to ".Astro") # https://github.com/cormullion/Astro.jl # (find-git-links "https://github.com/cormullion/Astro.jl" "astrojl") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # rm -Rfv ~/usrc/Astro.jl/ cd ~/usrc/ git clone https://github.com/cormullion/Astro.jl cd ~/usrc/Astro.jl/ # (code-c-d "astrojl" "~/usrc/Astro.jl/") # (find-astrojlfile "") * (eepitch-julia) * (eepitch-kill) * (eepitch-julia) import Pkg push!(Pkg.LOAD_PATH, "/home/edrx/usrc/Astro.jl") using Astro Pkg.add("https://github.com/cormullion/Astro.jl") ##### # # comprehensions # 2021jul07 # ##### # «comprehensions» (to ".comprehensions") # https://blog.lojic.com/2020/12/26/comprehensions-in-julia.html As Jules says, both Python and Julia are commonly used for numerical computing. Python has going for it that it is easy to use and is popular in the (huge) ML community, so it has lots of mindshare. But Python suffers badly from what is sometimes called the "two language problem": it is too slow to directly support intensive computing, and so numerical code and data structures are written in languages like C, C++, and Fortran and wrapped for use in vectorized computing in Python. Julia was created to solve this problem, to have an easy-to-use language that is fast enough that your inner loops don't have to be written in C. Moreover, in ACT, a lot of the computing is also over discrete structures like graphs, for which farming out to other languages for speed becomes even more tedious. Julia also has a number of language features, not possessed by Python, that are surprisingly well matched to ACT. One is its system for multiple type dispatch, so you can have a single generic function compose that works across any category. Good support for Unicode operators allows nice syntactic sugar for these functions, which matches the standard mathematical notation. Julia also has extensive support for Lisp-style metaprogramming, which we use extensively. For example, the system for GATs (generalized algebraic theories) in Catlab effectively implements a simple form of dependent typing in Julia using metaprogramming. http://www.philipzucker.com/a-sketch-of-gimped-interval-propagation-with-lenses/ http://www.philipzucker.com/reverse-mode-differentiation-is-kind-of-like-a-lens-ii/ https://github.com/philzook58/ad-lens/blob/master/src/Numeric/ADLens/Interval.hs http://www.stochasticlifestyle.com/comparison-differential-equation-solver-suites-matlab-r-julia-python-c-fortran/ https://discourse.julialang.org/t/sympy-jl-vs-symengine-jl-vs-reduce-jl-vs/10381/5 https://github.com/mossr/BeautifulAlgorithms.jl https://www.moll.dev/projects/effective-multi-dispatch/ https://viralinstruction.com/posts/badjulia/ https://github.com/AlgebraicJulia/ https://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt Recursive types for free! *** https://sciml.ai/news/2022/09/21/compile_time/ https://github.com/gcv/julia-snail # Local Variables: # coding: utf-8-unix # End: