45 votes

How can I define a new symbolic constant like Pi?

I was recently reminded that the following "functions" are settable, and I was surprised (even though I've seen this before). So I thought that it is valuable to share this information. There are ...
Szabolcs's user avatar
  • 234k
38 votes

How could Wolfram Research increase Wolfram Language adoption?

OP's take Why I like WL My time is valuable. Learning usage of several new functions from the WL docs takes less time than sifting through the disparate documentation and learning OO class structures ...
Alec Graves's user avatar
  • 1,058
34 votes
Accepted

Why did the Mathematica Language choose term rewriting instead of the Lambda Calculus as its basis?

The short answer is that the Mathematica Language did not choose anything. It was Stephen Wolfram back in 1979 when he started working on his own system after he reached the boundaries of Maxima which ...
halirutan's user avatar
  • 113k
33 votes
Accepted

The paradigm behind Dynamic and related functionality

General With a disclaimer that I am by far not an expert in this field, I will still try to answer. Perhaps this answer could then be improved by others more knowledgable than me. Model From the ...
Leonid Shifrin's user avatar
33 votes
Accepted

Why it seems that there is no counterpart function as to multiplication, to `Total` as to addition?

In addition to the previous answer... I designed and implemented Total 17 years ago. Its first version was named ListSum. The ...
Anton Antonov's user avatar
32 votes
Accepted

++ is dangerous for C programmers

I believe Increment (more accurately PreIncrement as george2079 noted) is essentially this: ...
Mr.Wizard's user avatar
  • 271k
31 votes

What's the deal with next generation Wolfram compiler?

First, no one outside of Wolfram could use the compiler so far. From what I have seen, it will be very much comparable to what the Julia language does. If you watched the videos closely, you'll ...
halirutan's user avatar
  • 113k
29 votes

Is Mathematica adequately improving?

Update January 19, 2024. added V 14 integration result (differential equations and PDE's update for V 14 will take more time to complete) Update July 12, 2023. added 13.3 integration result (...
Nasser's user avatar
  • 142k
28 votes

What are all the "magic" symbols in the Mathematica language?

uh oh, another "work in progress" answer from me that may never be finished. Unevaluated Robby Villegas, Working with Unevaluated Expressions: ...
Mr.Wizard's user avatar
  • 271k
26 votes

Resolving my Entity* Crisis

As an employee at Wolfram who is partly involved with development of the entity framework, let me give my take on things. Particularly, I want to address the following points raised by the OP and in ...
Paco Jain's user avatar
  • 897
24 votes
Accepted

What's the difference between these 2 associations?

Preamble The real problem here seems somewhat deeper than what the (mostly correct) observations in comments indicate. In Mathematica, a number of objects, which are so-called raw objects (including ...
Leonid Shifrin's user avatar
24 votes
Accepted

Programming language prototyping in Mathematica

General Some general answers and comments first. 1 Are you aware of any projects using the Wolfram language resp. Mathematica as an environment to explore the design of programming languages - in ...
Anton Antonov's user avatar
23 votes

Is expression in Mathematica well defined?

John Doty's answer says it very well: Even atoms have heads, they just aren't normally displayed, even in FullForm. I'll also respond to OP's comment: J.M.: Look ...
jjc385's user avatar
  • 3,473
23 votes

How could Wolfram Research increase Wolfram Language adoption?

As an academic in math and engineering, I like many of Mathematica's abilities, especially the ability to quickly prototype algorithms and check analytical results. In addition to the many points ...
erfink's user avatar
  • 1,089
22 votes
Accepted

Version inconsistency with optional arguments: what if the default value doesn't match the pattern?

Update: Daniel Lichtblau authoritatively comments: This change was intentional, and per request of the boss. I can find no mention of this in the documentation, though I am still looking. My ...
Mr.Wizard's user avatar
  • 271k
20 votes
Accepted

Unexpected behaviour when pattern matching with Longest

There are a number of subtle details at work here. Perhaps the prominent one is that in string expressions, unlike expression patterns, Longest and ...
WReach's user avatar
  • 68.7k
20 votes
Accepted

Why is an empty list not tested by VectorQ?

Others have argued in the comments that this behaviour makes sense mathematically, and I fully agree. But further than that, it is also very practical. Mathematica's functions are usually designed ...
Szabolcs's user avatar
  • 234k
20 votes

Is expression in Mathematica well defined?

Even atoms have heads, they just aren't normally displayed, even in FullForm. Head[1] (* Integer *) Head[Symbol] (* Symbol *)
John Doty's user avatar
  • 13.7k
19 votes
Accepted

What are the benefits of Entity Classes for Databases?

Preamble As was already hinted in the comments, the new functionality is a much higher level. It is basically a compiler from entity query language to SQL, specialized to a given SQL dialect of the ...
Leonid Shifrin's user avatar
19 votes

Why are Quantity and Units inconsistent with regular Mathematica behavior?

Not a solution but an extended comment. You misunderstand the physical underpinnings of quantities and units. Every physical quantity has an inherent margin of error, even if it is very small (...
Roman's user avatar
  • 46.9k
18 votes
Accepted

Second argument of BeginPackage with nested package loading

I've certainly encountered this behavior before. While I can't speak authoritatively, I'd think this is as designed, although it does introduce certain inconsistency. I also think that this issue is a ...
Leonid Shifrin's user avatar
17 votes

Resolving my Entity* Crisis

From what I can tell, the Wolfram Knowledge Base is organized around three ideas from epistemology: concepts, units, and properties: A concept is a set of related concrete perceptions. For example, '...
ConvexMartian's user avatar
17 votes
Accepted

Is $2x$ documented?

From Your First Wolfram Language Calculations: 2x means 2*x. Examples of no-space multiplication from ...
Michael E2's user avatar
  • 234k
16 votes

Why it seems that there is no counterpart function as to multiplication, to `Total` as to addition?

Total is different from Plus@@ because it uses tricks to minimize round-off error. It is thus a useful addition to the toolkit. <...
John Doty's user avatar
  • 13.7k
16 votes

How could Wolfram Research increase Wolfram Language adoption?

I know several people who use Maxima as a widely adopted mathematical computer language on the internet. Some of these people greatly prefer a proprietary language, but they all understand that a ...
Graham Laight's user avatar
15 votes

What is not an expression in the Wolfram Language?

Comments like (* blah *) are not expressions. ToExpression["(* blah *)"] returns Null. ...
user21's user avatar
  • 39.4k
15 votes

How could Wolfram Research increase Wolfram Language adoption?

I am a professional software developer with a passion for scientific computing, but I’m not about to pay a cent to use scientific computing software when there are comparable alternatives. Hence, I ...
Dean's user avatar
  • 167
14 votes

Why did Mathematica choose brackets for function arguments over parentheses?

Although Chip's answer already suffices to address the question, I would like to quote here a relevant part of the dialog by Theo Gray and Jerry Glynn in their book Exploring Mathematics with ...
14 votes
Accepted

ToExpression and ToBoxes aren't inverses of each other?

It is well-documented! According to the Documentation page for StandardForm, StandardForm generates output that gives a ...
Alexey Popkov's user avatar
14 votes
Accepted

Why is IdentityMatrix not defined as a SparseArray by default?

The fastest way to get the identity matrix as a sparse array is simply this: IdentityMatrix[10000, SparseArray]; // AbsoluteTiming Here are just some thoughts on ...
Jens's user avatar
  • 97.1k

Only top scored, non community-wiki answers of a minimum length are eligible