Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
Slashdot Deals: Deal of the Day - 6 month subscription of Pandora One at 46% off. ×

Comment Re:so... 900 bucks for one or fifty? (Score 1) 393

If mega-mass-produced digital textbooks are costing $500 per *grade school* student no wonder the public school systems have no money...

School textbook contents should be available under open licenses.

Poland already does this with their digital school initiative, providing CC licensed textbooks in a pilot project. Publishers are understandably up in arms against this.

Comment Re:Math symbols are so archaic so who gives a F (Score 1) 134

In the one corner case where f(f(x*y)) would have some utility

Such "corner cases" include for example iteration or recursion which I'd say is a pretty common thing to do for computers nowadays. Generally you can write

f^0 = id
f^(n+1) = f(f^n)

which is consistent with sin^(-1) notation, and is especially common in areas of mathematics that are close to computer science.

The problem is not that it isn't properly defined, the problem is that it is not consistent.

Amazing how Math people seem to be able to handle such inconsistencies then. /sarcasm

The readability or usability by humans was never questioned. The only argument is about whether the notation can be used for writing computer programs. To keep compilers simple, they need to build a syntax tree first before they can apply semantics. The inconsistencies vastly complicate this. (What would you suggest? Markov chains to predict whether an upper index means composition of functions or composition of their output?)

Comment Re:Math symbols are so archaic so who gives a F (Score 1) 134

Now, if you think that everything should be expressible under ASCII and easily readable by humans, pray tell, how you could express:

No, the question was not about readability by humans, but instead suitability to be part of a computer program. I give to you that the class builder { : } or the \mapsto operator would possibly become unwieldy.

1. Integration and limits or related symbols (e.g., area integration)

These are just functions with (commonly) three arguments. Not much different from if conditionals or for loops in a computer program.

2. Absolute vs. vector length

What is wrong with abs()? Also |x| notation creates an extra difficulty for compilers because opening and closing delimiter are the same.

3. Set theory symbols (membership, subset, etc.)

Write as predicates.

4. Logic symbols (and, or, xor are easy, how about )
5. Convolution related symbols

I don't see a particular problem with those?

The list goes on and on and before long the equation WILL be very unwieldy. So, before posting, please think over the problem carefully.

The mathematical notation was invented for allowing mathematicians communicate efficiently with each other, and it does its job well. Nobody disputes that I think. Any attempt to make it more accessible to computers will of course affect human readability.

Comment Re:Math symbols are so archaic so who gives a F (Score 1) 134

So "sin^2 x*y" means "(sin(x*y))^2", it's a pretty strong convention. If you meant "(sin(x)^2)y" (as "(sin(x^2))*y"), you'd write as "y sin x^2". If you meant "sin(sin(x))*y", you'd write as "y sin(sin(x))". If you meant "sin(sin(x*y))", you'd write as that or "sin(sin x*y)". Sure, it's a bit odd for people unfamiliar with mathematics, but those people are never going to do mathematics anyway.

But could you code this convention into a compiler, e.g. by formally specifying precedence for trigonometric operators? It would have to account for the most common interpretations:

sin x*y = sin(x*y)
sin x * sin y = sin(x)*sin(y)
sin^2 x = sin(x)^2
sin^(-1) x = arcsin(x)

Now continue this for log, lim, summation notation, and all the other clever ways mathematicians have devised in order to avoid writing parentheses. It will quickly become clear that this is an arduous, error prone task and the time better be spent elsewhere by using proper notation from the beginning.

The people who drives a language's evolution are those people who uses it.

Yes, and the OP said that this language is ill-suited for writing computer programs and hence predicted that it will see declining use in the computer world.

Comment Re:Math symbols are so archaic so who gives a F (Score 1) 134

So when one reads "sin^2 x*y" does that mean "(sin(x)^2)y" or "sin(x*y)^2" or "sin(sin(x))*y" or "sin(sin(x*y))"? The list goes on.

Why would it be anything other than the "sin(x*y)^2"?

Because in other contexts, (f^2)(x) means f(f(x)). And there is sin^(-1) which is a popular way to denote the arcsine. So the superscript after a function can mean totally different things which the compiler will have to figure out from the context. Concerning x*y see my other reply further below.

The author always defines what N actually means. Guessing from the context you are using it in N is the count.

The problem is not that it isn't properly defined, the problem is that it is not consistent.

Comment Re:Math symbols are so archaic so who gives a F (Score 2, Interesting) 134

What the hell? I can believe how incredibly ignorant is this comment. Do you even work with mathematics? The symbols used in mathematics are jargon to be sure, but every (non-trivial) field of endeavours has its jargon. And that jargon makes mathematics significantly easier to work with day-to-day for its practitioners.

You make it sound like mathematics deliberately chose symbols and syntax that was difficult to implement in a programming language, as if that's the pinnacle of the written form. Of course, mathematics predates programming languages by centuries if not millenia.

The problem is that these symbols are no longer suitable for the modern world. They were fine at the time when they were conceived, but technology has moved on and requires something better.

And the symbol it uses are part of a standard language character set, just not those that has yet been popular in the (relative) young computer world. You're comparing mathematics to a single programming language. You should instead compare mathematics to every programming language combined.

The criticism was not that the symbols are undisplayable, it is that their use is not consistent and not possible as part of a computer program, aside from very special languages which specifically cater for Math. A few attempts have been made to reconcile these (for example RPN and stack-based languages like Forth) but have not seen widespread adoption so far.

With regards to the GP, I think that the inconsistency is especially bad. For example, whether N is meant to include 0 or not often depends on whether the author thinks that the natural numbers include 0 or not (which are two totally different things). Then many authors use trigonometric functions like operators to avoid writing parentheses, but without formally specifying the binding/precedence level. So when one reads "sin^2 x*y" does that mean "(sin(x)^2)y" or "sin(x*y)^2" or "sin(sin(x))*y" or "sin(sin(x*y))"? The list goes on.

Comment Re:Summary implies that tablets are not a fad (Score 5, Interesting) 243

I would rather claim the reverse. Tablet sales are displacing sales of "more capable machines" at an astonishing rate. A $45 tablet already fulfills the computing needs of a whole lot of people, why should they spend more on a PC? Those high-priced PCs will be relegated to the niche of users who require functions that a tablet or smartphone cannot provide.

Comment "Bouncer" provably cannot win (Score 2) 44

The problem that Bouncer is trying to solve (telling whether an app is malicious or not) is otherwise known as program verification. Rice's theorem states that this is undecidable, not totally unlike the Y2K problem. It may even be highly undecidable, so even if Google had a hypercomputer at their disposal, Bouncer would still lose.

So if Google wants to keep malware out, Bouncer is fundamentally the wrong approach.

Every cloud has a silver lining; you should have sold it, and bought titanium.