В первой части мы рассмотрели лямбда-исчисление Чёрча и язык программирования LISP.
Ложбан
С середины двадцатого века умы всех лингвистов мира занимала гипотеза лингвистической относительности, более известная как гипотеза Сепира-Уорфа. Согласно этой гипотезе язык определяет мышление человека - то есть структура используемого человеком языка влияет на его мировосприятие и его возможности понимания определенных концепций. Например, согласно гипотезе Сепира-Уорфа носитель языка, на котором существует двадцать названий цветов будет эффективнее в некоторых занятиях носителя языка, в котором вполовину меньше названий цветов.
Обычно гипотезу Сепира-Уорфа пытались проверить на аборигенах из малоконтактных племён Южной Америки. Самое известное из подтверждений этой гипотезы - это исследование живущего в Южной Америке племени народа пирахан. Они ведут простую жизнь, их имущество обычно состоит из из горшка, кастрюли, ножа и мачете. В их языке нет числительных, времен и названий цветов, нет и языковой рекурсии, но зато существуют местоимения третьего лица для водоплавающих и неводоплавающих одушевлённых объектов.
В ходе проведенных этнологами и лингвистами экспериментов выяснилось, что из-за такой ограниченности языка носители племени пирахан не могут мыслить о прошлом и будущем, а также о других местах - они понимают только то, что происходит здесь и сейчас. Кроме того, обнаружилось, что для пирахан представляет огромную трудность счет предметов в количестве больше трех, у них нет декоративного искусства и они не умеют рисовать. Однако, существование в их языке местоимений для водоплавающих и неводоплавающих существ наводит на мысль, что их условия жизни и необходимое для выживания в этих условиях мышление влияет на ограничения и особенности их языка, а их язык в свою очередь влияет на их мышление.
Пирахан может заинтересовать что-нибудь необычное - например, пролетающий в небе самолет, однако как только тот скрывается из виду, они теряют всякий интерес к произошедшему, и даже не могут ответить на вопрос, видели ли они что-нибудь несколько секунд назад. Исследовавший их на протяжении долгих лет этнолог Дэниэл Эверетт писал, что люди племени пирахан руководствуются исключительно непосредственным опытом - они опираются только на ту информацию, которую получают от своих органов чувств в настоящий момент времени.
Но самым смелым экспериментом по проверке гипотезы лингвистической относительности стали создание на основе идей Лиспа искусственно сконструированного языка межчеловеческого общения Логлан и его открытой версии Ложбан, и попытка понять, влияет ли изучение этого языка на логическое мышление его носителей. Забегая вперёд, можно сказать, что эксперимент провалился, так как учить основанный на математике язык бросились только фанатеющие по математике ботаны с уже довольно специфическим складом ума.
Ложбан основан на идее о том, что любое высказывание естественного языка можно выразить в качестве основанной на математических функциях пропозиции. Это делает Ложбан языком с формальной, непротиворечивой, однозначной грамматикой, которую можно легко распарсить с помощью компьютерной программы.
Основной синтаксической единицей Ложбана служит предикат selbri, в чём-то подобный глаголам русского языка, но не совсем эквивалентный им. Каждый предикат selbri - это как в функция в LISP с определенным количеством определенных аргументов.
Возьмем к примеру klama - глагол "идти". У него пять аргументов:
x1 klama x2 x3 x4 x5
x1 идет от x2 к x3 через x4 используя x5
А у глагола-предиката djica "хотеть" три аргумента:
x1 djica x2 x3
x1 хочет x2 из-за мотива x3
Мы можем использовать только часть аргументов. Например:
mi klama
Я иду
mi klama le zarci
Я иду в магазин
mi klama le zarci le zdani
Я иду в магазин из дома
mi klama le zarci le zdani le bisli
Я иду в магазин из дома по льду
mi klama le zarci le zdani le bisli le karce
Я еду в магазин из дома по льду на машине
Определенный артикль le помогает отсекать аргументы после глагола друг от друга, так как на месте каждого из аргументов может использоваться другое выражение любой степени вложенности. Аргументы можно пропускать и заменять словом zo'e (читается как зо'э):
mi klama zo'e le zdani
Я иду из дома
Каждое высказывание подобное выражение на Ложбане называется bridi. Это аналог S-выражений в Лиспе. Его можно использовать в качестве аргумента в других глаголах-предикатах selbri с помощью частиц рекурсии.
Например, одной из таких частиц является "lo nu":
do klama le zarci
Ты идёшь в магазин
mi djica lo nu do klama le zarci
Я хочу, чтобы ты пошёл в магазин
Для обозначения времен в Ложбане используются частицы, меняющие время предиката:
pu - прошлое
ca - настоящее
ba - будущее
mi pu klama le zarci
Я шёл в магазин
mi ba klama le zarci
Я пойду в магазин
Преимущества Ложбана состоят в его однозначном синтаксисе. Например, двусмысленность английского предложения "I saw the man with the telescope" невозможна в Ложбане. Кроме того у Ложбана однозначное произношение букв - нет такого, что читается не так как пишется. Также в язык вшиты логические операции И, ИЛИ, НЕ, исключающее ИЛИ, предикаты "все" и "существует хотя бы один", логические построения вроде "если x1, то x2".
Но недостатков у него гораздо больше - немелодичное звучание, похожее на слух на вызов дьявола на смеси польского с арабским, отсутствие внятного словообразования, фиксированное количество аргументов у предикатов-глаголов, да и дикий всё-таки синтаксис. Такой популярности, как у гораздо более приятного уху эсперанто, Ложбан не снискал - он остался неудачным экспериментом лингвистов и математиков по созданию языка общения на основе логики высказываний. Однако зажжённый им маяк остался в сердцах людей.
Если хотите познакомиться с Ложбаном поближе, то лучшее место для этого здесь.
Лиспик
С моей точки зрения, несмотря на то, что у Ложбана есть фатальный недостаток, сама идея сконструировать язык человеческого общения на основе математики не так плоха. Но мне кажется, что имеет смысл начинать не с синтаксиса, а со словообразования. Я уже описывал свою задумку в своём посте "Двоичный код Вселенной и симметричные языки". Сейчас эта задумка оформилась в более-менее стройный план по созданию языка общения под каламбурным названием LISPEAK. Разработка словообразования, морфологии и синтаксиса этого языка будет вестись мною в виде кода на TypeScript в github-репозитории.
Словообразование языка будет основано на функциях. Основную идею этого можно выразить так:
const я = "аб"
const много = (x) => `${x}у`
const мы = много(я); // абу
const шёл = прошлое(иду)
const сделать = законченность(делать)
const сделал = прошлое(законченность(делать))
Cлова будут образовываться согласно симметриям подобно тому как в иврите различные слова образуются подстановкой трёхбуквенного корня в особую форму. К примеру, в иврите корень "спр" означает считать, а корень "хтв" - писать, а корень "фгш" - встречать. Подставляя эти корни в форму "ми12а3", означающую сущность, связанную с подставляемым значением, мы получаем слова "миспар" - "число", слово "михтав" - "письмо" и слово "мифгаш" - встреча. Подобно этому, мы могли бы создать язык, в котором буквенные корни подставляются в две симметричные формы и приобретают противоположные значения.
Далее цитирую самого себя:
Пусть форма "э1э2" означает одну из сторон симметрии, а форма "у1у2" будет означать противоположную сторону, а "и1и2" середину между ними. Подставляя в эти две формы разные корни мы будем формировать словарный запас нашего языка.
Пусть корень "бл" имеет значение, связанное со полом, тогда слово "эбэл" будет обозначать женщину, а слово "убул" мужчину. Пусть корень "рд" имеет значение, связанное с красотой, тогда слово "эрэд" будет обозначать уродливость, а слово "уруд" красоту. Следовательно выражение вроде "эбэл уруд" будет иметь значение "красивая женщина".
Пусть корень "мр" имеет значение связанное с прямым родством, тогда слово "эмэр" будет обозначать ребенка, а слово "умур" родителя. Таким образом, слово "эбэлумур" будет обозначать мать, слово "убулумур" - отца, слово "эбэлэмэр" будет обозначать дочь, а слово "убулэмэр" сына.
Пусть корень "мн" имеет значение, связанное с численностью, тогда слово "эмэн" будет обозначать "один", а "умун" много. Следовательно, слово "эбэлумун" будет обозначать "женщины", а слово "убулумун" - "мужчины".
Пусть корень "вд" имеет значение, связанное со сторонами взаимодействия, тогда слово "эвэд" будет обозначать "субъект", а слово "увуд" будет обозначать "объект". Словом "эвэд" также можно обозначать понятие "я", тогда "мы" будет "эвэдумун" - другими словами "много я".
Пусть корень "рл" имеет значение, связанное с жизнью, тогда слово "эрэл" будет обозначать рождение, слово "урул" будет обозначать смерть, а слово "ирил" - саму жизнь.
Пусть корень "лв" имеет значение, связанное с любовью, тогда слово "эмэн" будет обозначать ненависть, а слово "улув" - любовь. И пусть прибавление "и" на конце слова будет формировать глагол. Тогда слово "элэви" будет иметь значение "ненавидеть", а слово "улуви" будет означать "любить".
Пусть корень "вр" имеет значение, связанное со временем, тогда слово "эвэр" будет обозначать прошлое, "увур" - будущее, а "ивир" - настоящее. Прибавляя эти слова к глаголам мы можем получать прошедшие и будущие времена глагола. Например, выражение "эвэд эвэрулуви" будет обозначать "я любил".
Пусть корень "нл" имеет значение, связанное с отрезком, тогда слово "энэл" будет обозначать начало, слово "унул" - конец, а слово "инил" - середину. Прибавляя "унул" к глаголам мы можем получать совершенные формы глагола. Таким образом, если выражение "эвэд эвэрулуви" имеет значение "я любил", то выражение "эвэд унулэвэрулуви" будет обозначать "я полюбил".
Такое фундаментальное включение понятия симметрии на уровень словообразования может помочь людям осознавать симметричность бытия. Таких симметричных пар и троиц в языке многие сотни. Вот только несколько примеров:
верх/низ
начало/середина/конец
лево/право
поражение/ничья/победа
писатель/читатель
перед/зад
любовь/ненависть
полезный/вредный
добрый/злой
свет-тьма
быстрый/медленный
рано/поздно
к/от
до/после
живой/мертвый
целое/часть
вход/выход
чистый/грязный
мы/вы
родитель/ребёнок
начальник/подчиненный
Более того, возможно это даст возможность встроить в TypeScript-ядро языка математические симметрии - группы из теории групп. Кроме того, я думаю, сделать все окончания в языке на гласную на манер итальянского - так язык получается намного более мелодичным. В общем, сейчас навайбкодю язык и давайте на нём общаться!
P.S.: Больше интересных постов и видео про философию, буддизм и математику вы можете найти в моём телеграм-канале.