LINUX.ORG.RU

Нечеловеческие языки

 


1

4

Объекты/методы и функции - это всем интутивно понятно.

Поделитесь языками, в которых базовые конструкции абсолютно неинтуитивные и чуждые человеческому мышлению? Можете на пальцах рассказать, что они значат?

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

(возможно этой теме место в толксах)

★★★★☆

Ну так может нейросети? От того что наш мозг нейросеть нам не становиться понятнее что-же оно такое.

abs ★★★
()

Я бы попросил не мешать в одну кучу объекты, процедуры и функции! ООП было создано в соответствии с человеческим представлением о природе, об окружающем мире, когда всегда без особых проблем можно выделить состояние и поведение. Поэтому ООП уже много лет на коне и пользуется мировым признанием.

Функциональщина же, особенно с прибавлением детерминизма и чистоты, контринтуитивна и применима только к идеальным математическим моделям, но никак не к бренному окружающему миру. Вот и приходится программистам страдать и подгонять предметную область под инструмент, создавая при этом чудовищ, похлеще чем от «сна разума». Радует, что эта муть не выползает за пределы академических кругов.

CARS ★★★★
()
Ответ на: комментарий от stevejobs
"Say you’re in the kitchen in front of the refrigerator, thinking about a sandwich. You take a continuation right there and stick it in your pocket. Then you get some turkey and bread out of the refrigerator and make yourself a sandwich, which is now sitting on the counter. You invoke the continuation in your pocket, and you find yourself standing in front of the refrigerator again, thinking about a sandwich. But fortunately, there’s a sandwich on the counter, and all the materials used to make it are gone. So you eat it. :-)"
anonymous
()

INTERCAL, COBOL, 1С, Visual Basic.

Какая самая сложная базовая конструкция, идея или принцип, с которым вы встречались на уровне кодинга?

Dependency Injection/Inversion of Control

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

Нейросеть простая и интуитивная. Сложность её реализации в том, как заставить её работать похожим образом, а не в том что она непонятная.

vurdalak ★★★★★
()

Сюда будут постить (и уже постят) языки со сложным синтаксисом, brainfuck, Malbolge и прочую эзотерику. Господа, вы оп-пост читали? Речь о конструкциях, а не синтаксисе. В этих языках тот же самый ассемблер, примитивные функции.

Я с такими ЯП не встречался. Все придуманы человеком и несут следы его мышления. Нужно скастовать в этот тред пришельцев.

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

Там вроде ячейки, запись в них, перемещение, почти машина тьюринга, не?

Офигеть человеческий язык...

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

Нейросеть простая и интуитивная.

Да ну? А если бы ты ровным счетом ничего не знал про человеческий мозг ты бы сказал тоже самое?

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

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

А если бы ты ровным счетом ничего не знал про человеческий мозг ты бы сказал тоже самое?

Да. Там чистая математика.

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

Да. Там чистая математика.

Какое интересное заявление, то есть теперь для тебя чистая математика - интуитивная?

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

даже кретин сможет работать машиной тьюринга

anonymous
()
Ответ на: комментарий от abs

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

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

Классы и объекты интуитивно понятные для тех, кто привык с ними работать. Попробуй ребёнку пояснить полиморфизм, абстракцию и наследование.

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

И да, НС это не программирование. Ты можешь их на тех же классах написать, это уже область применения.

vurdalak ★★★★★
()

Меня больше всего поразил APL/J/K - вот, например, описание.

Пример с quicksort:

quicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)

Для того, чтобы на нем эффективно программировать, необходима специальная клавиатура. Авторы APL исходили из соображений экономии бумаги (терминал=принтер), поэтому повсеместно используются спецсимволы - вот пример с Game of Life:

life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}

mtk
()

Поделитесь языками, в которых базовые конструкции абсолютно неинтуитивные и чуждые человеческому мышлению?

чуждые человеческому мышлению

Можете на пальцах рассказать, что они значат?

братья-гуманоиды, не раскрывайтесь, это тест!

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

APL

+1

почитал про него и забыл поскорее, пока моск не сломался

Virtuos86 ★★★★★
()

Нечеловеческие языки

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

http://wtfjs.com/ полностью посвящён нечеловечески неинтуитивному и чуждому человеку языку.

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

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

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

APL/J это не эзотерика, а вполне используемый (кем-то, где-то, когда-то) язык

нет языка APL/J. это даже хуже, чем C/C++

впрочем, используется как APL, так и J (и, само собой, K)

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

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

по сабжу - разные tacit-диалекты, но они скорее не непонятны, а непривычны, потому что довольно быстро осваиваются.

anonymous
()
Ответ на: комментарий от Deleted

Вроде умные вещи пытаешься толкать, а несёшь такую ахинею. Ещё и неграмотный.

Я из укры, стараюсь быть грамотным. Под линейным программированием я не совсем то имел в виду. Хотел сказать что команды выполняются последовательно. Есть конечно функции, так что номер команды выполнения прыгает, но все равно выполняется только одна команда. В отличии от нейросети.

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

abs ★★★
()

C++ За примерами далеко ходить не надо. Ладно когда код больше похож на чисто сишный, но когда погромист прибегает к массе чисто крестовых наворотов... То по своей нечеловеческой замороченности кресты могут запросто накидать за шиворот самому брейнфаку, и машинным кодам.

Hertz ★★★★★
()

Prolog был непривычен. Шаблоны С++ и сейчас плохо понимаю на продвинутом уровне. Continuations в Scheme тоже мозг вывернули, когда разбирался.

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

Все придуманы человеком и несут следы его мышления.

Двачую этого гражданина.

Deleted
()
Ответ на: комментарий от Legioner

Prolog

Кстате, не помню совершенно, хоть и учил когда-то. Учил, но не использовал.

Deleted
()

Пожалуй Scala-овские Future & Promises. Самое сложное в понимании, с чем приходилось встречаться. Остальное гораздо легче ложится в голову.

Sunil
()
Ответ на: комментарий от Kuzy

Применение f к x

f : x

Композиция.

f . g

Список.

<1, 2, 3>

Конструкция.

[g, f, e] : x = <g : x, f : x, e : x>

Ветвление.

(p -> q; r)


(p -> q; r) : x = q : x // если p : x = T
(p -> q; r) : x = r : x // если p : x = F

Факториалосодержимое.

id : x = x

1 2 3 4 ...

1 : x = 1
2 : x = 2
3 : x = 3
...
* : <2, 3> = 6
* : <2, 3, 4> = 24

Факториал.

def fact = eq 0 -> 1; * . [id, fac . (- . [id, 1])]

fact : 3 = eq 0 : 3 -> 1 : 3; (* . [id, fac . (- . [id, 1])]) : 3
fact : 3 = * : <id : 3, (fac . (- . [id, 1])) : 3>
fact : 3 = * : <3, fac : (- : ([id, 1] : 3)]>
fact : 3 = * : <3, fac : (- : <3, 1>) >
fact : 3 = * : <3, fac : 2>
...
Kuzy ★★★
()

Мне кажется, что вычислительная модель не может быть слишком сложной, хотя простое, конечно, не значит интуитивно-понятное.

Из совсем не того, но дополняющего то, что уже есть в треде, можно вспомнить РЕФАЛ какой-нибудь.

anonymous
()
Ответ на: комментарий от abs

Полиморфизм можно объяснить, например, как функцию измерения длинны

Нет

Есть мяч, а есть футбольный мяч

А теперь заставь ребёнка представить абстрактный мяч.

Я из укры

У вас там свои правила на ТСЯ/ТЬСЯ?

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

У вас там свои правила на ТСЯ/ТЬСЯ?

Естественно!)

А теперь заставь ребёнка представить абстрактный мяч.

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

Полиморфизм можно объяснить, например, как функцию измерения длинны

Ладно, может и нет. Тогда сложение. Можно складывать как натуральные, так и целые(дробные и так далее) числа.

abs ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.