Есть ли язык программирования, который использует символы, отличные от символов в (нерасширенной) таблице ascii?

Я не вижу, кто примет такое решение, но есть ли такой язык?

Причина, по которой я спрашиваю это (или некоторые мелочи, если хотите), заключается в том, что я только что закончил делать восьмую итерацию моей версии dvorak для "разработчиков" (большой акцент на специальные символы). И четыре ключа в настоящее время не используются!

Так как я никогда не хочу наткнуться на новый язык, чтобы попробовать, только чтобы узнать, что в моем макете не хватает решающего специального персонажа, я решил спросить сообщество.


Если нет необходимости в каких-либо других символах, кроме основных, то что было бы наилучшим образом (для программиста, конечно, это SO) неиспользуемых ключей? Что-то из расширенной таблицы ascii? Или намеренно оставить их неиспользованными и сделать что-нибудь классное с AutoHotKey?

9 ответов

Решение

Да, есть (хотя бы один): APL

Вот игра жизни Конвея, написанная в APL:

Он использует эту раскладку клавиатуры:

Де-факто стандартная реализация Haskell, GHC, поддерживает синтаксис Unicode, если

{-# LANGUAGE UnicodeSyntax #-}

указан в верхней части файла. Это позволяет вам использовать для типов функций и лямбд, для классов типов, для понимания списка и т.д..

Точнее, поддерживаемый синтаксис:

 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

Кроме того, различные библиотеки предоставляют операторы Unicode (используя поддержку Haskell для символов Unicode в именах операторов): http://www.haskell.org/haskellwiki/Unicode-symbols

Fortress, математический / научный язык программирования, разработанный (среди прочих) Гаем Л. Стилом из Java, когда он еще был в Sun, широко использует математические операторы Unicode и т. Д.

Существует не только определенное представление языка в ASCII, но также есть определенный способ преобразования ASCII в "визуализированную" версию с использованием TeX. Вы также можете (насколько я понимаю, я) использовать операторы Unicode непосредственно в вашем источнике - есть просто "ярлык" ASCII для вещей, которые трудно напечатать (насколько я понимаю - я признаю, что не уверен в этом).

На сайте есть пример источника и как он отображается.

C# позволяет переменным содержать символы Unicode. Например, символ ɢ (латинская заглавная буква G, U+0262) является совершенно допустимым символом в переменной C#.

Мой форк 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 ▼ ->
    ★ <| (▼ -★- ▼) |> °

Язык сценариев для старой Мастерской программистов Macintosh (MPW) использовал множество не-ASCII-символов для реализации того, что было в основном версией оболочки Unix. Фактически, некоторая документация все еще доступна. Например, он использовал ∑ для перенаправления.

PL/I использует символ "вверх ногами-L" для оператора "not"; VM360, который я когда-то использовал, использовал "^" в качестве эквивалента ASCII (я не думаю, что у EBCDIC было "^").

Будет ли это рассчитывать?

Китайская версия Python
http://www.chinesepython.org/doc/tut/tut/node3.html

Китайский язык:

>>> 甲 = 12
>>> 乙 = 3
>>> 甲 + 乙
15
>>> 甲 + 乙**乙
39
>>> 甲 = 0 #(可以重新指定值)
>>> 乙 = 甲 + 1
>>> 寫 乙
1

Английский:

>>> j = 12
>>> y = 3
>>> j + y
15
>>> j + y**y
39
>>> j = 0
>>> y = j + 1
>>> print y
1

В Perl 6 есть дополнительные операторы Unicode, а также возможность добавлять пользовательские операторы.

Вы, вероятно, не должны ждать этого перед перераспределением ваших ключей. Я не знаю, может ли Rakudo работать с операторами Unicode.

Другие вопросы по тегам