I guess the mental block I have with Wolfram&#x2F;Mathematica is that there&#x27;s this feeling that you don&#x27;t know how to do it until you know how to do it. As opposed to languages where you can learn a smaller number of principles and then use those principles to reason your way to how to do it.<p>Like, the third slide of the introduction:<p>Range[20]<p>Why not just something like List[1..20] ?  Maybe List[1..20] works in Wolfram, but then it&#x27;s weird that you have this Range function that serves no other purpose than to define a Range.<p>Same with NestList[f, x, 5].  I don&#x27;t offhand know the way to create its output in something like Scala or Haskell but I imagine it&#x27;s pretty concise, but meanwhile, in this case... if it&#x27;s possible to get the effect without using NestList, then why use it?  And if it&#x27;s not possible to get the effect without using NestList, then how would you ever find out that you can use NestList?<p>It just seems like the actual programming experience would be a lot more about hunting-and-pecking through documentation and google searches, rather than reasoning your way to solution.<p>I&#x27;d love to hear from someone skilled with Wolfram to offer some clarity. Are you just basically thumbing through the documentation all the time to find that one perfect function call?