
Ask HN: I want to learn Wolfram Language - gsaga
I&#x27;m a relatively inexperienced cs student and am interested in learning Mathematica&#x2F;Wolfram Language. It&#x27;s a great tool and can do amazing things, but whenever I tried to actually &#x27;learn to program&#x27; in this language, I couldn&#x27;t get very far. My experience is mostly with OOP. I&#x27;ve heard that it&#x27;s based on lisp and is a functional language. I&#x27;ve tried to teach myself WL with the tutorials included with the package but they seem to be lacking, in that they assume a level of familiarity with the language, and the official examples look like a brainfuck program to me.<p>What path should I follow if I want to teach myself Wolfram language?
======
dajohnson89
Since you're a CS student, i recommend incorporating Mathematica into your
studies as much as possible. Especially for your more math-oriented courses.
That's how I learned Mathematica as a math major. Anything from checking the
prime factors of a number, to visualizing a parametric function, so much more.

Couple caveats: Matlab will be more useful for graduate studies and industry
(different tool, however). Also, with such a powerful CAS, there's a risk on
using it too much and becoming overly reliant on it. Just like any calculator.
Use it to check your answers and explore an idea, but don't lose your
mathematical intuition by doing all of your thinking with it.

------
sinab
I think it's important to figure out what you want to use the Wolfram Language
for. As a reference, I have about a year of experience with it, using
Mathematica to do theoretical Solid Mechanics calculations with their
phenomenal symbolic toolbox.

Here are two notebooks a friend of mine put together covering a few basic
concepts that may help you:

[https://drive.google.com/drive/folders/1YGM-
xswFTjfwZ5MhFqpL...](https://drive.google.com/drive/folders/1YGM-
xswFTjfwZ5MhFqpLavW4b_eeXdOU?usp=sharing)

------
auganov
When you see weird syntax I suggest doing FullForm[Hold[whatever]] which is
kind of like doing quote and macroexpand in a Lisp.

    
    
      f[#u, #v, #u] &[<|"u" -> x, "v" -> y|>] // Hold // FullForm  =>  
      Hold[Function[f[Slot["u"],Slot["v"],Slot["u"]]][Association[Rule["u",x],Rule["v",y]]]]
    
      FullForm[Hold[f[#u, #v, #u] &[<|"u" -> x, "v" -> y|>] // Hold // FullForm]] =>
      Hold[FullForm[Hold[Function[f[Slot["u"], Slot["v"], Slot["u"]]][Association[Rule["u", x], Rule["v", y]]]]]]

~~~
kazinator
Just in time for Hallowe'en: _The Nightmare before Lisp_.

------
mimixco
It's debatable whether anything like a traditional "app" can even be built in
Wolfram. Unlike most languages, Wolfram consists of a huge library of very
specialized functions which are poorly documented and don't related
syntactically or conceptually to other functions. This is because Mathematica
was designed as a tool for folks who are solving equations, not writing apps.

I think Wolfram is fun to play with but the lack of a real IDE or any serious
documentation will hinder your attempts to produce "real" software with it. So
definitely have a look but, as another poster suggested, ask yourself what you
want to do first and then pick the language based on that.

\-- D

------
taliesinb
Did you take a look at [http://www.wolfram.com/language/fast-introduction-for-
progra...](http://www.wolfram.com/language/fast-introduction-for-
programmers/en/)?

------
arthurcolle
look at the docs

one good project could be a fractal generator

