LINUX.ORG.RU

Скобочки и падежи

 


0

1

Лисп: (про олимпиада)

Русский: про олимпиаду

Добавляем комплекс фич:

1) Символы (н-р названия переменных) могут иметь падежи (склонения, спряжения - следующие фичи).

2) Между грамматически связанными словами устанавливается формальная связь

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

4) При однозначном грамматическом связывании скобки можно не писать

5) Естественно, при желании прямо внутри программы можно расширять набор правил связывания. «эволюция диалекта».

Результат: можно писать литературные предложения.

Правила «связывания» на практике познаются не по мануалам (хотя формальная грамматика может и существовать) а интуитивно, путем общения с компилятором и попытками упрощения кода. Аналогично тому, как изучается Scala.

Взлетит?

★★★☆☆

Взлетит?

нет, ибо есть форт

Deleted ()

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

zinfandel ★★ ()
Ответ на: комментарий от TheAnonymous

а программировать ты на чём будешь? На C++ ака Кресты что ли?

stevejobs ★★★☆☆ ()
Ответ на: комментарий от zinfandel

Здесь «за» не предлог. Здесь «за» логическая функция «за»/«против», то есть, это скорее #t/#f.

DeVliegendeHollander ★★ ()
Ответ на: комментарий от zinfandel

вот видишь, с падежами это можно записать корректно, а обычным программным кодом типа c++ - нельзя!

stevejobs ★★★☆☆ ()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от DeVliegendeHollander

тогда так


(за я
бан)

в таком случае условие становится лишним(т.к. я != фалсе), так что просто (бан). Если 'за' является аналогом if.

Bad_ptr ★★★★ ()
Ответ на: комментарий от DeVliegendeHollander

но мне кажется просто будет функция/макрос/алиас (я-за-бан)

Bad_ptr ★★★★ ()

У меня впопыхах была идея сделать синтаксис как в объ-си, но не как [массив добавить:икс черезЖопу:нет], а без инстанса, то есть сигнатура [удалить из (массив*) элемент (объект*)] и вызывать в свободной форме, плюс оверлоадинг от заюзанных типов мог бы сократить wordiness, но дальше размышлений дело не идет — времени нет писать той-парсер с конвертацией в сишку. А так интересено было бы прикрутить к сигнатурам падежные вариации и писать как пушкин^W^W в свободной форме. Лиспу имхо не хватает свободных атомов, тупо поддерживающих/связывающих слова в предложении.

Даешь кухарку управляющую проектом!

arturpub ★★ ()

говно.

не с того конца заходишь.

google:// ibm watson

x4DA ★★★★★ ()

как перевести выражение?


(with-open-file (f «file»)
(for line in f
(if (string-starts-with «start» line)
break))
(message «end!»))

А когда ещё добавятся юзерские функции и макросы...

Bad_ptr ★★★★ ()

Кстати такое никогда не взлетает без среды — набирать без комплита или хотя бы хелпера очень тяжело. Собственно я бы все middleware писал на объективе, он таки ультраъ-язык, но кроме икскода он везде п-ц неудобный и многословный.

arturpub ★★ ()
Ответ на: комментарий от Bad_ptr
Производим операции с файлом (обозначим за f сожержимое "file")
   пробегаем строки в f
       и, если строка начинается со "start",
            прекращаем делать это
   выводим сообщение "end!"
stevejobs ★★★☆☆ ()
Последнее исправление: stevejobs (всего исправлений: 2)
Ответ на: комментарий от Bad_ptr

Типа ф это $хомяк/файл.txt: бежим по строкам ф: если строка начинается с «старт»: ломай!;; вывести «усё»

arturpub ★★ ()
Ответ на: комментарий от arturpub

но кроме икскода

Jetbrains AppCode же!

кроме того у джетбрейнсов есть MPS, языки на котором может мышкой писать любая кухарка (если она хорошо разбирается в MPS и JVM)

stevejobs ★★★☆☆ ()
Ответ на: комментарий от stevejobs

У тебя стдлиб слишком официальный, #импортируем ололокодинг.

arturpub ★★ ()
Ответ на: комментарий от Bad_ptr

там идентация вообще не нужна, это же лисп, можно хоть в одну строчку записать

stevejobs ★★★☆☆ ()
Ответ на: комментарий от stevejobs

будет неоднозначность, например с «прекращаем делать это»(но не только).

Bad_ptr ★★★★ ()
Последнее исправление: Bad_ptr (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Давно читал, но оно вроде все равно под осыксь, хотелось бы чо-то кроссплатформенное.

arturpub ★★ ()
Ответ на: комментарий от Bad_ptr

Так это везде есть, надо оборачивать в теги: читаем настройки (... если ключ я хз чо за ключ: плохой файл! хорош читать настройки; ...)

arturpub ★★ ()
Ответ на: комментарий от arturpub

MPS полностью кроссплатформенное. Плюс открытое и швободное. Плюс интеграция полученного с Идеей.

А вот как придумать собственно грамматическое связывание, чтобы оно было совместимо с русским языком... (((

stevejobs ★★★☆☆ ()

модераторы

перенесите в /development, пожалуйста. Запостил не туда.

stevejobs ★★★☆☆ ()
Ответ на: модераторы от stevejobs

Да нормуль. В толксах хотя бы анонизмусы срать не будут.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от stevejobs

Мда.. Потыкал аппкод — вердикт ненужно. Комплит очень (очень) подтупливает, ibo до IBOutlet вообще не догадался дополнить, как и имя класса без кейса, cmd-вверх-вниз забиндено на хрень какую-то, как перейти в начало-конец сорца так и не нашел. Навязывает форматирование свое дурацкое. Для редактирования ксибов открывает икскод, лол. Может и можно привыкнуть, но честно говоря уг, и платить две сотни, когда есть халявный искод, зачем?

Зы: выглядит совершенно ненативно, какого хера писать под мак на своем велотулките — волбще.

arturpub ★★ ()
Ответ на: комментарий от arturpub

Оно точно все доиндексировало? Конкретно с ObjC я их среду не использовал, но рядом лежащая IDEA почти идеально дополняет и подсвечивает scala со всеми ее неявными вывертами, моментально.

А interface builder не нужен, если задача — написать что-то сложнее hello world.

note173 ★★★★★ ()
Ответ на: комментарий от note173

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

Про ИБ не согласен. Ручками констрейнты накидываешь или забил на хиг? У меня одни метаформы, но даже для них юзаю контролы из готовых частичных ксибов с контроллерами, как и задумано, проблем не вижу. Да и многое приходится раскапывать руками без него, те же начальные настройки NSCell и форматтеров. Расскажи ради интереса, где подводные камни встречал.

Кстати только что подумал: иб не видит аутлеты вне своего проекта — смысл внешнего иб для аппкода и правда нулевой.

arturpub ★★ ()
Ответ на: комментарий от arturpub

Видимо, им не особо занимаются. Потому что именно добавление в IDEA реактивное, быстрее просто не встречал.

Руками, конечно, а что делать. Визуальные редакторы UI, к сожалению, недалеко ушли со времен C++ Builder.

note173 ★★★★★ ()
Ответ на: комментарий от arturpub

подсказка там в несколько раз круче.
mac mini 2012 - ничего не тормозит. на какой микроволновке ты его запускаешь? самая главная характеристика - свободная RAM.
клавиатурные сочетания там свои, но переопределяются в настройках.
форматирование кода там своё, но переопределяется в настройках.
нафига делать свой интерфейс-билдер, если он в икскоде хороший?
вверх/вниз - command+home/command+end. или fn+command+right arrow.
Но вообще, command+home/end - это неправильный вариант. Правильный - это пойти в Preferences -> KeyMap -> Editor Actions и найти там пункт «Move Caret to Text End»

какого хера писать под мак на своем велотулките — волбще.

икскод написан на своём тулките - и получилась неюзабельная херня не для людей

stevejobs ★★★☆☆ ()
Последнее исправление: stevejobs (всего исправлений: 4)
Ответ на: комментарий от note173

Видимо, им не особо занимаются. Потому что именно добавление в IDEA реактивное

оно и в AppCode реактивное, насколько это возможно для C/C++-like языков. Оно нереактивное только по сравнению с XCode, который дополняет как попало, поэтому не тратит ресурсов на анализ текста. Либо, как вариант, Артур запускал на микроволновке, и тогда легко проверяется - запускается Eclipse, если там слайдшоу то та-да, всё понятно.

stevejobs ★★★☆☆ ()
Ответ на: комментарий от DeVliegendeHollander

Потому что сперва вычислится (за я) же, а уже потом (бан something).

skiminok1986 ★★★★ ()
Ответ на: комментарий от stevejobs

А вот как придумать собственно грамматическое связывание, чтобы оно было совместимо с русским языком... (((

Достаточно таблиц склонений и управлений, а в сигнатурах все равно придется их указывать, ибо контекст-зависимые граммары частенько даже головой не распарсишь. Заодно русский подтянется — будешь слету определять тип склонения, а сраных неучей вон из отрасли, сразу двух зайцев убиваем. Ну либо принимать все словоформы.

На выходных попробую займусь :)

arturpub ★★ ()
Ответ на: комментарий от stevejobs

Xcode как раз тратит ресурсы на анализ. Постоянно что-то индексирует и разгоняет вентиляторы. В последних версиях ввели воркэраунд — на время компиляции индексирование ставится на паузу.

Дополняет как попало только пока нет индекса. Который, правда, стал все чаще теряться, ломая вообще всю подсветку...

note173 ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Погугли по фразе «литературное программирование»

Я верю, что пришло время для существенно лучшего документирования программ, и что мы можем достигнуть этого сделав программы литературными произведениями.

Кнут, 1983 год.

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

stevejobs ★★★☆☆ ()
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Я в курсе про литературное программирование. Но то, что предлагаешь ты - выглядит как какой-то треш. Без обид.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

то, что предлагаешь ты - выглядит как какой-то треш

Ведь есть Perligata.

nexto stringum reperimentum da.     # $next = pos $string;
nextum stringo reperimento da.      # pos $string = $next;
inserto stringum tum unum tum duo excerpementum da. # $insert = substr($string,1,2);
insertum stringo unum tum duo excerpemento da. # substr($string,1,2) = $insert;
keyis hashus nominamentum da        # @keys = keys %hash;
keya hashibus nominamento da        # keys %hash = @keys;
monk ★★★★★ ()
Ответ на: комментарий от stevejobs

То, что ты предлагаешь — это не literate programming:


   This literate program prompts the user for a number
   and prints the factorial of that number:

> main :: IO ()

> main = do putStr "Enter a number: "
>           l <- readLine
>           putStr "n!= "
>           print (fact (read l))
          
  This is the factorial function.

> fact :: Integer -> Integer
> fact 0 = 1
> fact n = n * fact (n-1)
fish_ka ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.