J (мова програмування)

J
Парадигмаоб'єктно-орієнтоване програмування, функційне програмування, мультипарадигмальне програмуванняd, масивове програмування, Комбінаторне програмування і tacit programmingd
Дата появи1990; 34 років тому (1990)
ТворціКеннет Айверсон
РозробникJSoftware
Останній релізJ901 (15 грудня, 2019; 5 років тому (2019-12-15)[1])
Система типізаціїдинамічна
Під впливом відFLd і APL[2]
Вплинула наNumPy[3]
SuperCollider[4]
Операційна системаБагатоплатформність: Microsoft Windows, Linux, macOS
ЛіцензіяGPLv3
Звичайні розширення файлів.ijs
Вебсайтwww.jsoftware.com

J — функціональна мова програмування. Діалект APL. На відміну від APL не потребує спеціальної розкладки клавіатури для введення математичних символів, оскільки використовує символи ASCII.

Приклади

Отако виглядає код гри «Життя» на J[5]:

step =: ((]+.&(3&=)+)(+/@(((4&{.,(_4&{.))(>,{,~<i:1))&|.)))~

Для порівняння, так виглядає аналогічний код на APL[6]:

life{1 .3 4=+/,¯1 0 1∘.¯1 0 1∘.⌽⊂}

Можна зауважити що код на J набагато легше писати на клавіатурах з поширеними розкладками.

Примітки

  1. J901 release 15 December 2019. Архів оригіналу за 31 травня 2020. Процитовано 3 березня 2020.
  2. http://www.jsoftware.com/papers/APLPersonalView.htm
  3. Wes McKinney at 2012 meeting Python for Data Analysis. Архів оригіналу за 30 травня 2020. Процитовано 3 березня 2020.
  4. SuperCollider documentation, Adverbs for Binary Operators. Архів оригіналу за 11 грудня 2020. Процитовано 3 березня 2020.
  5. Архівована копія. Архів оригіналу за 11 березня 2020. Процитовано 4 березня 2020.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  6. Архівована копія. Архів оригіналу за 28 квітня 2020. Процитовано 4 березня 2020.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)

Посилання

  • Офіційний сайт (англ.)