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: