Alex Rivera | Logout

If Ascii operators are definable, why not Unicode Symbols?

Asked 2009-07-21T09:07:07.493
13

I'm sure I join many in being glad there's finally a powerful language tied tightly to a mainstream GUI/Database/Communication framework.

I haven't been sure where to post this, but here seems the best spot.

I need to use Unicode symbol characters either as operators or as function names. I'd like syntactic sugar, but I don't need it.

Guy Steele pointed out in Communications of the ACM that "*" was a forced choice when it was adopted from Ascii as multiply, but my software works in Unicode, so I'm not tethered to Ascii anymore.

!$%&*+-./<=>?,@^|~:

Part of localization includes local programmers. Why limit the set of operators that can be defined in F#? It isn’t orthogonal to C#'s and F#'s acceptance of many Unicode IsLetter in identifiers.

Also, F# is likely to be used for symbolic manipulation of problems from logic, math, physicists, etc. It makes work much easier if there’s a direct mapping into the language of the basic operators. (F# and C# accept many Unicode IsLetter? as well as IsDigit’? This is a request to allow Unicode IsSymbol? As operators with the precedence of, for example, *, or, since “+” is both a unary and binary operator, I could put up with the precedence of + and make up the difference with parenthesized groupings.

Consider the domain-specific needs of logicians, mathematicians, physicists, etc. I’d rather write a symbolic differentiator or integrator using math symbols than Ascii permutations of already-taken operators.

  • Logic: ∀ ∃ ⇒
  • Math: ∑ ∫ ∂
  • Group theory: ≤ ≥ ∈ ∉
  • Set Theory: ⊆ ⊇ ⊃ ∪ ∩
  • Tensors: ⊗

I’ve written many languages in other languages, but because F# is tightly .Net-integrated, this issue poses special challenges without language support:

It’s trivial to cobble up a translator that takes Unicode-operator F# source and maps it, line-by-line, to Ascii-operator F# source.

But when d

Edit
Report

1 Answer

1

For an interesting discussion on this check: http://cs.hubfs.net/forums/thread/9690.aspx

answered 2009-07-22T06:39:06.943

Your Answer