Я считаю, что оно нужно только для того, чтобы понтоваться, растопыривая пальцы.
Существуют математики, существуют программисты. У первых это исчисление и TeX для того, чтобы в нём писа́ть,
а у вторых есть машины Тьюринга, Поста, которые полностью этому лямбда-исчислению эквивалентны
,
и позволяют всё программировать на мейнстримной сишечке (ну или на упоротый случай на расте).
Математикам очень хочется денег, и поэтому они настаивают именно на своём синтаксисе в "научных" статьях.
Хотя так-то синтаксис программистов лучше (и это доказывается практикой ИТ).
Если бы математики были бы правы, то лисп бы всех зарулил. Но нет, его в курсах MIT заменили на Python.
Это о многом говорит. Или должно говорить.
---
Лямбда-исчисление было изобретено раньше машины Тьюринга
Алонзо Черчем, который был преподавателем Тьюринга
(т.е. Тьюринг это исчисление знал, но свою машину изобрёл всё равно).
Поэтому пользоваться сишечкой идеологически более верно, потому что более прогрессивно, модно и более современно.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Я считаю, что оно нужно только для того, чтобы понтоваться, растопыривая пальцы.
ЭФ>Существуют математики, существуют программисты. У первых это исчисление и TeX для того, чтобы в нём писа́ть, ЭФ>а у вторых есть машины Тьюринга, Поста, которые полностью этому лябмда-исчислению эквивалентны, ЭФ>и позволяют всё программировать на мейнстримной сишечке (ну или на упоротый случай на расте). ЭФ>Математикам очень хочется денег, и поэтому они настаивают именно на своём синтаксисе в "научных" статьях.
ЭФ>Хотя так-то синтаксис программистов лучше (и это доказывается практикой ИТ). ЭФ>Если бы математики были бы правы, то лисп бы всех зарулил. Но нет, его в курсах MIT заменили на Python. ЭФ>Это о многом говорит. Или должно говорить.
Что, с лямбдами в C#/ES пытаешься разобраться? Никак не даются?
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Существуют математики, существуют программисты. У первых это исчисление и TeX для того, чтобы в нём писа́ть, ЭФ>а у вторых есть машины Тьюринга, Поста, которые полностью этому лябмда-исчислению эквивалентны, ЭФ>и позволяют всё программировать на мейнстримной сишечке (ну или на упоротый случай на расте). ЭФ>Математикам очень хочется денег, и поэтому они настаивают именно на своём синтаксисе в "научных" статьях.
На LISP-е определенно проще писать, чем для машины Тьюринга
ЭФ>Хотя так-то синтаксис программистов лучше (и это доказывается практикой ИТ).
Видел бы ты этот синтаксис в языках времен машины Тьюринга. Ты, пожалуйста, его с тёплой и ламповой Сишечкой не путай.
ЭФ>Если бы математики были бы правы, то лисп бы всех зарулил. Но нет, его в курсах MIT заменили на Python. ЭФ>Это о многом говорит. Или должно говорить.
Одичание. Скоро вообще будут учиться на этих системах для детей, когда "программа" собирается из картинок, изображающих ее отдельные элементы.
P.S. Рефал забыли, гады. Это еще одна Тьюринг-полная система программирования.
Мне тут говорят — а ты на haskell, на Хаскель смотри.
Не будешь его использовать, не будет никакого автоматического распараллеливания
и не возьмут тебя огромные суперкомпьютеры программировать.
Здравствуйте, Эйнсток Файр, Вы писали:
A>> Что, с лямбдами в C#/ES пытаешься разобраться? Никак не даются?
ЭФ>Нет, у меня нет целей изучать C#, и я вообще не знаю, что такое ES.
А зря. Каждому, кто пишет на "мейнстримной сишечке" я бы прописал пару лет того или и другого, чисто для расширения кругозора. С возможностью досрочного освобождения после сдачи экзамена по промисам. А то выучат один for...
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Эйнсток Файр, Вы писали:
Pzz>> Рефал забыли, гады
ЭФ>Мне тут говорят — а ты на haskell, на Хаскель смотри. ЭФ>Не будешь его использовать, не будет никакого автоматического распараллеливания ЭФ>и не возьмут тебя огромные суперкомпьютеры программировать.
Зачем тебе огромные суперкомпьютеры? Они шумные, пыльные и громоздкие.
Здравствуйте, Эйнсток Файр, Вы писали:
A>> Что, с лямбдами в C#/ES пытаешься разобраться? Никак не даются? ЭФ>Нет, у меня нет целей изучать C#, и я вообще не знаю, что такое ES.
лямбда-выражения
это компактный синтаксис, заимствованный из λ-исчисления,
это анонимный (без имени) класс или метод, для передачи кода в качестве параметра в другой код.
т.е. его "компактность" в том, что можно обойтись без имени функции.
но зачем изучать λ-синтаксис, если
в реальности используется другой синтаксис — синтаксис языка программирования?
Сдаёшь на собеседование знание λ-исчисления, а потом никогда, никогда это не используешь в работе.
Кто не прав? Конечно собеседующий, потому что он недавний студент
и ничего не знает, кроме того, что ему в ВУЗе рассказали, но
кичится своим "кругозором человека с вышкой", больше нечем.
Можно сказать, что используются "понятия", и что проверяется именно их знание (наличие в голове).
Но по факту-то используются не те понятия, которые проверяет собеседующий, а другие.
TODO:>>> Привести пример из стандарта на Java
---
Синтаксисы в разных языках программирования разные, и возможно собеседующий хочет спросить "основы",
то есть нечто общее, что подошло бы куда угодно, чтобы не напрягать собеседуемого деталями конкретного языка?
Что мешает собеседуемому выучить как конкретную, так и отвлечённую обобщённую информацию
ради прохождения собеседования?
---
И очень странно слышать от собеседующего вопрос "а как вы тогда сможете функцию в функцию передавать"?
Т.е. он не знает Си! Вообще! Иначе бы это не было для него вопросом.
(может и знает, вопросы-то не ему, а собеседуемому)
Сможем, передача функции в функцию вообще проблемой не является.
Было ли когда-либо проблемой передать в Си указатель на функцию в качестве параметра? Нет, никогда не было.
Делали так ещё в 1994 году то есть 30 лет тому назад.
И главное, что это крайне редко используется (только для организации коллбэков).
TODO:>>> Привести пример кода для GObject на языке программирования Си.
Для чего используется передача функции в функцию? Где ЕЩЁ без этого вот прям концептуально не обойтись?
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>И очень странно слышать от собеседующего вопрос "а как вы тогда сможете функцию в функцию передавать"? ЭФ>Т.е. он не знает Си! Вообще! Иначе бы это не было для него вопросом.
Я же говорил. Пытается осилить лямбды, лямбды отчаянно сопротивляются. Картина "Неравный бой" ))
Запишись на курсы. Там рассказывают про "гражданство первого класса", может расскажут и про разницу с сишными указателями.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Эйнсток Файр, Вы писали:
A>> Там рассказывают про "гражданство первого класса", может расскажут и про разницу с сишными указателями.
ЭФ>Вы даже расшифровать аббревиатуру ES неспособны. ЭФ>Что вы можете понимать в first class citizen-ах?
Зачем мне что-то расшифровывать человеку, который не прошёл собеседование из-за незнания базовых вещей, и вместо того, чтобы сесть и разобраться, не придумал ничего умнее, чем создать тему "Да говно все эти ваши лямбды"? У тебя же на лбу написано, как это было. Пришёл домой расстроенный, сел читать с самых основ... с исчисления... самого Чёрча откопал, наверное. Тебе был дан дельный совет: вместо этого тупо попиши какое-то время на C# или ES, год — не год, это от человека зависит, некоторые за неделю схватывают, и что ты с этим советом сделал? На каком месте его покрутил? Что ж удивляться, что над тобой только издеваются.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Здравствуйте, Pzz, Вы писали:
Pzz>Зачем тебе огромные суперкомпьютеры? Они шумные, пыльные и громоздкие.
Я суперкомпьютеров не видел. Зато начинал на ЕС ЭВМ сменным инженером. Шумные — да. Особенно когда АЦПУ работают. Громоздкие — возможно. В шкафу памяти на ЕС-1033 можно было поспать. Память, правда, была не ферритовых сердечниках. ЕС-1036 была намного компактнее.
Но пыльные... Категорически не согласен. В машзал мы всегда заходили в халатах. У меня был синий. И я упоминал как-то: однажды я пинками выгнал из зала взвод курсантов, которых на наш ВЦ на экскурсию привели, и они пытались зайти в зал в шинелях. А диски в отдельной зоне вообще стояли.
Неужели суперкомпьютеры пыли не боятся?
ЭФ>Я считаю, что оно нужно только для того, чтобы понтоваться, растопыривая пальцы.
Ты че!!!!!
Без этого не было бы лямбд!
ЭФ>Если бы математики были бы правы, то лисп бы всех зарулил. Но нет, его в курсах MIT заменили на Python. ЭФ>Это о многом говорит. Или должно говорить.
Это говорит о двух вещах:
— о несоответствия архитектуры фон Неймана лямбда-исчислению (функциональное программирование)
— о том, что руководство МИТ следует моде
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
ЭФ>> Я считаю, что оно нужно только для того, чтобы понтоваться, растопыривая пальцы. LVV> Ты че!!!!!
Мне "для понимания темы" нехватает каких-то общих соображений.
Если я не пишу пользовательский интерфейс, то зачем мне "асинхронное программирование"?
Если я знаю, что такое "замыкания", как мне это поможет? Мне чихать на yield, я им всё равно не пользуюсь.
Без этих "общих соображений" у меня нет мотивации к изучению.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Существуют математики, существуют программисты. У первых это исчисление и TeX для того, чтобы в нём писа́ть, ЭФ>а у вторых есть машины Тьюринга, Поста, которые полностью этому лямбда-исчислению эквивалентны, ЭФ>и позволяют всё программировать на мейнстримной сишечке (ну или на упоротый случай на расте).
Мы ж не программируем в машине Тьюринга, мы пишем функции/методы. ))
Ты бы задолбался машину Тьюринга прогать.
ЭФ>Математикам очень хочется денег, и поэтому они настаивают именно на своём синтаксисе в "научных" статьях.
Синтаксис там минимальный, как любят математики.
ЭФ>Хотя так-то синтаксис программистов лучше (и это доказывается практикой ИТ).
Возможно.
Чёрч разработал эту нотацию до завоевания популярности Си-подбного или ML-подобного синтаксиса в ЯП.
На деле там достаточно простое отображение в привычный синтаксис, например в C#:
Л.И.:
(/xy.x+y) 42 43
Шарп:
((x, y) => x + y)(42, 43)
или, более педантично:
(но, увы, уже в типах и промежуточных переменных)
var xy = (int x) => (int y) => x + y;
xy(42)(43);
(нахрена ему промежуточная переменная xy? пипец, дичь...)
ЭФ>Если бы математики были бы правы, то лисп бы всех зарулил.
Убогость Лиспа была связана с необходимостью достаточно быстрого его интерпретирования на технике конца 50-х.
ЭФ>Но нет, его в курсах MIT заменили на Python.
Давно пора.
ЭФ>Это о многом говорит. Или должно говорить.
Ес-но.
Хотя, Питон тоже гавнецо, но всяко лучше Бейсика.
Я пока не вижу достаточно удачного языка для начала обучения программированию.
Паскаль тоже донельзя дебильный — писать кучу "шапочного" объявления, заранее планировать, какие переменные могут понадобиться и заранее их объявлять.
Это всё сплошная тухлятина прямиком из 50-х, из Алгола.
ИМХО, если бы чуть осовременить Фортран — было бы самое то.
(совместить объявление переменных и инициализацию их значениями, разрешить рекурсию, чуть упростить запись end type MyType и других аналогичных выражений до простого end)
(дополнение: оказывается, частично Фортран уже осовременнили)
(дополнение 2: оказывается, в стандартах F2008 и F2018 осовременнили полностью, но оба стандарта официально так и не вышли)
Потому что совсем простые ЯП, типа Бейсика или Лого, не тянут на язык для студентов, в лучшем случае как язык для школьников 5-8-х классов.
Я когда-то своих обучал программированию в их 15 лет, показал язык что-то типа осовремененного Лого — им хватило разобраться и начать писать минут через 10, хотя до этого не вникали ни в один ЯП и вообще этой темой не интересовались. А тут полюбопытствовали.
Так вот, я так и не сообразил, что им дать для самостоятельного копания далее.
В мою эпоху в старших классах на 8-битных компах можно было хотя бы в видеопамять сразу писать, т.е. хотя бы минимально-примитивные игры можно было писать сходу на коленке, даже можно было генерировать сразу же звук в цикле. А мне для своих пришлось сделать достаточно громоздкую заготовку бойлерплейт-кода ради маленького участка "пишите сюда процедуру рисования".
И особо оно не впечатлило, и после первых экспериментов любопытства и задора далее не вызвало.
Т.е. когда вокруг дохрена непонятного кода, который нужен для запуска небольшого кусочка понятного — это признак нездоровой какой-то херни, конечно.
А со звуком и вовсе уже на совсем другом уровне возились, когда уже в ВУЗ-е учились.
В плане непосредственного контакта со звуком современные архитектуры страшно далеки от народа.
В общем, с одной стороны, моща и удобство компов выросли, но, с другой стороны, комп и ПО для новичков всё более видятся вещами в себе, которые хрен его знает каким таким волшебным образом вообще работают. И куча непонятного бойлерплейт кода для любой примитивщины чуть сложнее "Привет, Мир!" наглухо отбивает позывы к любопытству!
Ну вот на МатЛабе немного повозились еще, но это тоже весчь слишком узкоспецифичная.
В общем, на простейших персоналках из 80-х понять целиком и полностью принцип работы компьютера было элементарно, просто взглянув на схему, прочитав 15 мин вводную и немного попрограммировав.
Сейчас аналогичная глубина понимания достигается за годы близкого общения с техникой.
Я со своими разбирал комп, показывал и на бумажках рисовал, что там вообще унутре происходит.
И что должно произойти, чтобы пиксель засветился или звук появился.
Но одновременно с этим схематично показывал и рассказывал, как оно было на компах моей эпохи, чтобы ответить на немой вопрос "чего так всё мудрёно-то?"
Т.е. вот так — сразу же необходимо было оправдывать неприспособленность современных компов для близкого общения и экспериментов. ))
Питон в этом смысле тут хорош лишь тем, что позволяет обходиться без бойлерплейта.
Но сам язык — полное Г, конечно, еще больше отдаляет студентов от понимания принципов работы техники и ПО на ней.