Существует ли язык программирования, который использует символы, отличные от тех, которые содержатся в (нерасширенной) таблице ascii? - PullRequest
6 голосов
/ 06 ноября 2010

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

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

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


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

Ответы [ 9 ]

16 голосов
/ 06 ноября 2010

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

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

5 голосов
/ 23 августа 2011

Де-факто стандартная реализация 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

4 голосов
/ 06 ноября 2010

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

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

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

2 голосов
/ 06 ноября 2010

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

2 голосов
/ 06 ноября 2010

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

1 голос
/ 04 апреля 2013

Моя вилка 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 ▼ ->
    ★ <| (▼ -★- ▼) |> °
1 голос
/ 06 ноября 2010

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

1 голос
/ 06 ноября 2010

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

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

0 голосов
/ 27 сентября 2012

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

Китайская версия 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
...