Reputation: 52311
I cant see who would make such a decision but is there any such language?
The reason I ask this (or some trivia, if you like) is that I just finished making the eighth iteration of my "developer" version of dvorak (big emphasis on special characters). And four keys are currently not used!
Since I dont ever want to stumble upon a new language to try, only to find out that my layout lacks a crucial special character I decided to ask the community.
If there never is a need for any other characters besides the basic ones, what would be the best use (for a programmer of course, this is SO) of unused keys? Something from the extended ascii table? Or purposefully leave them unused and do something cool with with AutoHotKey?
Upvotes: 14
Views: 4801
Reputation: 31524
Yes, there is (at least one): APL
Here is Conway's Game of Life written in APL:
(source: wikimedia.org)
It uses this keyboard mapping:
Upvotes: 20
Reputation: 21475
The scripting language for the old Macintosh Programmer's Workshop (MPW) used lots of non-ASCII characters to implement what was basically a version of the Unix shell. In fact, some of the documentation is still available. It used ∑ for redirection, for example.
Upvotes: 2
Reputation: 33714
My fork of F# : https://github.com/Heather/fsharp
let ° msg = System.Console.WriteLine( msg.ToString() )
let ◄ = 5
let ★ x = x + ◄
let (-★-) x y = x + y
let © = "© 2013"
let ► =
fun x -> 2 + x
sprintf "Heather %s" project version © |> °
► ◄ |> fun ▼ ->
★ <| (▼ -★- ▼) |> °
Upvotes: 1
Reputation: 1446
Would this count?
Chinese version of Python
http://www.chinesepython.org/doc/tut/tut/node3.html
Chinese:
>>> 甲 = 12
>>> 乙 = 3
>>> 甲 + 乙
15
>>> 甲 + 乙**乙
39
>>> 甲 = 0 #(可以重新指定值)
>>> 乙 = 甲 + 1
>>> 寫 乙
1
English:
>>> j = 12
>>> y = 3
>>> j + y
15
>>> j + y**y
39
>>> j = 0
>>> y = j + 1
>>> print y
1
Upvotes: 1
Reputation: 30647
The de-facto standard Haskell implementation, GHC, supports Unicode syntax if
{-# LANGUAGE UnicodeSyntax #-}
is specified at the top of a file. This lets you use →
for function types and lambdas, ⇒
for type classes, ←
for list comprehensions, etc..
More precisely, the supported syntax is:
ASCII Unicode alternative
:: ∷ U+2237 PROPORTION
=> ⇒ U+21D2 RIGHTWARDS DOUBLE ARROW
forall ∀ U+2200 FOR ALL
-> → U+2192 RIGHTWARDS ARROW
<- ← U+2190 LEFTWARDS ARROW
-< ↢ U+2919 LEFTWARDS ARROW-TAIL
>- ↣ U+291A RIGHTWARDS ARROW-TAIL
-<< U+291B LEFTWARDS DOUBLE ARROW-TAIL
>>- U+291C RIGHTWARDS DOUBLE ARROW-TAIL
* ★ U+2605 BLACK STAR
Further, various libraries provide Unicode operators (using Haskell's support for Unicode characters in operator names): http://www.haskell.org/haskellwiki/Unicode-symbols
Upvotes: 9
Reputation: 37533
Fortress, a mathematical/scientific programming language developed by (among others) Java's Guy L Steele when he was still at Sun, extensively uses Unicode mathematical operators etc.
Not only is there a defined ASCII representation of the language, there's also a defined way of converting the ASCII into a 'rendered' version using TeX. You can also (as I understand i) use Unicode operators directly in your source -- there's just an ASCII 'shortcut' for stuff that's hard to type (as I understand it -- I'l admit I'm not sure on this point).
The site has an example of the source and how it's rendered.
Upvotes: 5
Reputation: 81115
PL/I uses an upside-down-L character for the "not" operator; the VM360 I used once upon a time used "^" as the ASCII equivalent (I don't think EBCDIC had "^").
Upvotes: 1
Reputation: 133950
C# allows variables to contain Unicode characters. For example, the character ɢ (Latin Small Capital G, U+0262) is a perfectly valid character in a C# variable.
Upvotes: 3
Reputation: 51411
Perl 6 has optional Unicode operators, as well as the ability to add user-defined operators.
You probably shouldn't wait for it before remapping your keys. I don't know if Rakudo can work with Unicode operators yet.
Upvotes: 1