xtodo Wolfram language
(* Wolfram language why in xah emacs mode, this no work *) Get[ "InvertCircle.wl" ] (* but this works *) Get["xxss.wl" ] Get[ "InvertCircle.wl" ] Get["xxss.wl" ] Directory[] (* c:\Users\xah\git\InvertCircle *)
- export animation to svg
(* gralist is a list of graphics *) MapIndexed[ Function[{xx,ii}, Export[StringTemplate["xx_``.svg"][ii[[1]]] , xx ]] , gralist]
- replace all my
Table
Cos
Sin
byCirclePoints
CirclePoints
- finish doc the Groupings
- Wolfram: List. Combinatorics
- maybe add
- add
FileSystemMap
FileSystemScan
- Wolfram: List Files (Walk Directory)
- put my functions from my packages to website
- Wolfram language Packages by Xah Lee
- redo old images
- Algorithmic Mathematical Art
- publish the package for circle inversion
- Wolfram: Geometric Inversion Package 📦
- write Wolfram language graphics to svg
- Xah Talk Show 2025-09-05 Ep697 Wolfram Language Coding Session, Write Custom Command Export 2D Graphics to SVG
- redo graphics in
- Algorithmic Mathematical Art
- find out how to cut a graphics.
- Wolfram: Mesh Region
- Wolfram language figure out, DiscretizeGraphics and DiscretizeRegion returns a MeshRegion.
(* when there are multiple rules, the more specific is applied first? *) ReplaceAll[ {1, {2, {3, {4}}}}, { {2,_} -> x, {1,{2,_}} -> y } ] (* y *) (* when there are multiple rules, the more specific is applied first? *) ReplaceAll[ {1, {2, {3, {4}}}}, { {2,_} -> x, {3, {4}} -> y } ] (* {1, x} *)
- work on. go thru code, improve. also add that tile the other guy send me.
- Wolfram: Plane Tiling Package 📦
$CharacterEncodings $SystemCharacterEncoding
$SystemCharacterEncoding = "UTF-8"; x = "i ♥ cats and dogs"
- 2022-05-14 read the char encoding Wolfram: Find Replace Text 📜
- 2022-08-01 need test using diff encoding for WolframScript Wolfram: File Encoding
- all xah Wolfram language packages, the doc notebook, need to give a homepage url
- need to add a blurb on where to put the package
- need to write a emacs lisp script to sync my packages
- find out how to find the script's dir.
- finish tutorial Wolfram language import export json.
- Wolfram: JSON Import Export
(* move all 0 to the left of 1 *) ReplaceAll[ {3, 1, 1, 0, 0, 3, 1, 1, 0, 0} , {head___, Pattern[dots, Longest[ 1.. ] ], Pattern[balls, Longest[ 0.. ] ], tail___} -> {head , balls , dots , tail} ] (* {3, 0, 0, 1, 1, 3, 1, 1, 0, 0} *) (* look into why don't do the rest *)
- list all .nb link in plane curves. work on them one by one
need work
- 2024-03-26 more update on transform 2d plot
- 2024-03-26 more update on tiling package
- 2024-03-26 update plane curve site
- Wolfram language NotebookDirectory[ ] return slash or not
- why stringjoin that works in notebook
- Wolfram: Navigate Directory
- look into Wolfram language format code for xah-wolfram-mode
wstp wolfram symbolic transfer protocol
- https://www.youtube.com/watch?v=nXVEOUMZbzQ
- Developing Wolfram Language Code in Other Editors and IDEs with LSP
- Wolfram
- Dec 31, 2021
to read
function repo
- function repo
- https://resources.wolframcloud.com/FunctionRepository/
- https://resources.wolframcloud.com/FunctionRepository/style-guidelines
- wolfram submissions pending status https://resources.wolframcloud.com/publisher/submissions
- recent https://resources.wolframcloud.com/FunctionRepository/recent
paclet package repo
- 2024-02-15 check the paclet repo. read in detail. especially check how to doc.
- Paclets
- wolfram resource system
- https://resources.wolframcloud.com/
- WolframResourceSystem
programatically turn a expression into a function
th[ft_Function , xrest___] := tt[ With[{expr179= ft@argHq2Ky}, With[{x881= First@ expr179, y804= Last@ expr179}, {x881, y804} /. argHq2Ky -> #1 ] ] , xrest] /; SameQ[Length@ ft, 2];
(* \|01f469 *) StringLength[ FromCharacterCode[{128105, 8205, 128300}]] === 3 (* StringLength["\|01f469"] *)
pattern matching issues
- number of rules.
assume just 1 rule:
- whole expression or parts
- if parts, issue of sequential items vs levelspec
- when to stop: stop at first match e.g. 「{x,x}」, just one part.
- when to stop: stop at first match, all?.
Replace[ f[x,x] , {x -> 3, y -> 4}, {1, Infinity } ] (* f[3, 3] *)
- Replace[expr,rules,levelspec]
- levelspec default to {0}
- A list of rules can be given. The rules are tried in order. The result of the first one that applies is returned. If none of the rules apply, the original expr is returned.
- If the rules are given in nested lists, Replace is effectively mapped onto the inner lists. Thus Replace[expr,{{r11,r12},{r21,…},…}] is equivalent to {Replace[expr,{r11,r12}],Replace[expr,{r21,…}],…}.
- Replace
- ReplaceAll looks at each part of expr, tries all the rules on it, and then goes on to the next part of expr. The first rule that applies to a particular part is used; no further rules are tried on that part or on any of its subparts.
- ReplaceAll applies a particular rule only once to an expression.
- ReplaceAll
(* WolframScript does not behave the same as notebook. In notebook, these eval correctly. in WolframScript, they do not. *) StringCases[ "αβ🌞ab", StringExpression[ LetterCharacter.. ] ] (* {Î, Î, ð, ab} *) StringCases[ "πσ", StringExpression[ "ΠΣ" ], IgnoreCase -> True ] (* {} *)
What's the difference between Hold, HoldForm, Unevaluate
Attributes[ CompoundExpression ] (* {HoldAll, Protected, ReadProtected} *) (* CompoundExpression *) FullForm[ a;b;c ] (* FullForm[c] *) FullForm[ Hold[ a;b;c ] ] (* FullForm[Hold[a; b; c]] *) FullForm[ HoldForm[ a;b;c ] ] (* FullForm[HoldForm[a; b; c]] *)


# list file path of WolframLang Get-Command wolframscript.exe | Format-List Source # on windows, it's usually at # C:\Program Files\Wolfram Research\WolframScript\wolframscript.exe
on linux or MacOS, type which wolframscript
- 2022-05-14 find out where Wolfram language package located is. builtin, and user addon.
2022-05-13, commented on https://reference.wolfram.com/language/ref/ParametricPlot.html the two examples with Exclusions, has no effect. ParametricPlot[{Tan[u], u}, {u, 0, 2 Pi}, Exclusions -> Range[Pi/2, 2 Pi, Pi]] ParametricPlot[{Tan[u], u + v}, {u, 0, 2 Pi}, {v, 0, 1}, Exclusions -> {u == Pi/2, u == 3 Pi/2}, Axes -> None]
- 2022-07-06 Wolfram language write Level, Apply, Sequence
sequence specification:
All
→ all elementsNone
→ no elementsn
→ elements 1 through nUpTo[n]
→ elements 1 up to at most n, as available-n
→ last n elements{n}
→ element n only{m,n}
→ elements m through n inclusive{m,n,s}
→ elements m through n in steps of s
All
- all elements
None
- no elements
n
- elements 1 through n
UpTo[n]
- elements 1 up to at most n, as available
-n
- last n elements
{n}
- element n only
{m,n}
- elements m through n inclusive
{m,n,s}
- elements m through n in steps of s
- Replace[expr,rules,levelspec]
- levelspec default to {0}
- A list of rules can be given. The rules are tried in order. The result of the first one that applies is returned. If none of the rules apply, the original expr is returned.
- If the rules are given in nested lists, Replace is effectively mapped onto the inner lists. Thus Replace[expr,{{r11,r12},{r21,…},…}] is equivalent to {Replace[expr,{r11,r12}],Replace[expr,{r21,…}],…}.
- ReplaceAll looks at each part of expr, tries all the rules on it, and then goes on to the next part of expr. The first rule that applies to a particular part is used; no further rules are tried on that part or on any of its subparts.
- ReplaceAll applies a particular rule only once to an expression.
Implementing Contour Plot 3D
This is interesting and hard to implement. The function takes a 3D array. Then, create a surface that basically connects similar values together. Say, you have a 3d array, each value is a number from 1 to 1000.

ListContourPlot3D[array] generates a contour plot from a three-dimensional array of values. ListContourPlot3D[{{x1, y1, z1, f1}, {x2, y2, z2, f2}, ...}] generates a contour plot from values defined at specified points in three-dimensional space.
needs computational geometry knowledge to implement this.
actually this post should be in #programing .
first hard problem is , imagine you have a 3d matrix, how to you find out the indexes for elements in the matrix that have the same value? (let's assumes all the values are integers. forget about float or approximately equate as required) this is non-trivial to implement it efficiently.
second non-trivial problem: once you found indexes that have the same value, you need to determine if they are adjacent in 3D space. Basically, the indexes for each el in matrix is its coordinate. If 2 same value are not connected, you don't draw surface.
3rd hard problem is, given a bunch of points in 3d space forming a surface, you need to triangulate them into a mesh in order to draw the surface. classic computational geometry problem.
omg this is one level harder. computational geometry! once you have a surface, and given a plane intersecting it. you need to draw curves on the plane to show the intersection (like cross section). The plane can actually be ANY surface!

one can get a phd in computational geometry just for creating a algorithm to solve this problem efficiently. i presume it's mostly solved problem.