LINUX.ORG.RU
Ответ на: комментарий от nvl

Как написали выше язык Си поддерживает функции, следовательно, данный язык исповедует парадигму функционального программирования. Также, кроме функций в этом языке есть и структуры — на лицо поддержка парадигмы структурного программирования. Напротив, в Паскале нет ни функций, ни структур, зато есть процедуры и записи (ключевое слово record), соответственно Паскаль поддерживает парадигмы процедурного и записевого (или как правильно поправили выше — экстремального) программирования. Все не так уж и сложно.

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

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

Да, ладно. Наличие функции, как подпрограммы возвращающей значение, не делает ЯП функциональным и не создает в нём парадигму ФП.

Функциональным ЯП делает поддержка чистых функций и т.д (см. вики).

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

Переведите на русский эту фразу: «Паскаль поддерживает парадигму не записевого, а так называемого рекордного программирования.»

в Паскале нет ни функций..

function max(num1, num2: integer): integer;

var
   result: integer;

begin
   if (num1 > num2) then
      result := num1
   
   else
      result := num2;
   max := result;
end;

.. ни структур..

     Struct=record
                     Items:integer;
                     Count:byte;
     end;
nvl ★★★★
()
Последнее исправление: nvl (всего исправлений: 1)

Из последнего - заюзал filter в JS сегодня :D

Именно чисто функциональное - практически ни где не использую. Хотя могу и умею (ту же Clojure). Но элементы и подход с неизменяемыми данными - частенько использую, т.к. так код попроще становится.

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

Переведите на русский эту фразу: «Паскаль поддерживает парадигму не записевого, а так называемого рекордного программирования.»

В языке Си есть структуры (struct) — структурное программирование, в Паскале есть записи (record) - записевое (рекордное, record'ное или экстремальное) программирование.

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

парадигму функционального программирования.

процедурного

функциональное - это кое что другое

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

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

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

В языке Си есть структуры (struct) — структурное программирование, в Паскале есть записи (record) - записевое (рекордное, record'ное или экстремальное) программирование.

Т.е. фраза
«Паскаль поддерживает парадигму не записевого, а так называемого рекордного программирования.»
переводится так?:
«Паскаль поддерживает парадигму не структурного, а так называемого экстремального программирования.»

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

Записевое программирование = рекордное программирование, также его называют экстремальным программированием, но это для любителей заморских наименований. А структурное программирование это прерогатива Си в силу наличия в данном языке структур, объявляемых с помощью ключевого слова struct.

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

https://en.wikipedia.org/wiki/Record_(computer_science)

In computer science, a record (also called a structure, struct, or compound data)[1][page needed] is a basic data structure. A record is a collection of fields, possibly of different data types, typically in fixed number and sequence [2][page needed]. The fields of a record may also be called members, particularly in object-oriented programming. Fields may also be called elements, though these risk confusion with the elements of a collection. A tuple may or may not be considered a record, and vice versa, depending on conventions and the specific programming language.

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

потому что js работает в любом браузере. Пока корпорации бились за право зарабатывать на интернет-технологиях - вспомните ява-апплеты, active-x, j++, jscript, flash - яваскрипт, как детище сошедшего с дистанции нетскейпа всех устраивал, как бесплатный, никому из корпораций не принадлежащий язык. Попытки «embrace, extend, and exterminate» («Поддержать, надстроить и уничтожить») провалились из-за глобальности интернета и сетевого эффекта - кто самоизолировался, проигрывал. Тогда js казался (и был) меньшим из зол. Как крысы и тараканы пережили динозавров, так и js выжил в битве микрософта против всех и захватил мир.

anonymous
()

прозрачность по ссылкам

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

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

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

Как крысы и тараканы пережили динозавров, так и js выжил в битве микрософта против всех и захватил мир.

Лол :-) И теперь эти тараканы живут в головах JavaScript программистов :-) Лол :-)

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

так что «рекордового», «структурного» - это синонимы

Так фраза «Паскаль поддерживает парадигму не записевого, а так называемого рекордного программирования.» имеет смысл? Или тут полнейший бред?

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

про js - темой ошибся. Не читайте.

А, не всё правильно написал. Я параллельно несколько тредов читаю, бывает путаю

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

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

в реальных языках вынужденны были использовать формы ибо ....

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

ты сомневаешся в факте что где-то написано ...

не сомневайся

то что где-то написано про кложу правда

правда ли что там напичано - в этом ты сам разберись

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

нет вообще смысла ТРАТИТЬ время.

ты время инвестируешь

про современное значит лучшее

у Карла Чапека в войне с саламандрами был создан язык командования саламандр - бэсик.

от целей и задач под который создают и затем эволюционирует язык программирования многое зависит.

так что качай математику и филологию. исполнение программ оставь программируемым автоматам.

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

ээээ там (в Паскале) была без приседаний разрешена вложенность процедур которая в некоторых не стандартных реализациях делало замыкания - ну прям как потом с внешней стороны в C# выглядит(в шарпе правдо это только синтаксический сахар а по факту обьекты а не наоборот как в старых языках где обьекты(без наследования) это замыкания)

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

ага.

например правил бытового использования бытовых электроприборов что есть мелкая но жизнесберегающая часть базовых знаний электротехники - без таковых знаний живительный переменый ток побегает через твою нервную систему и ты имяряк возможно успеешь осознанать полезность общетеоритических знаний

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

ну опиши наследование в синтаксисе Javascript

Так можно любое отличие костылём называть... При чём как в одну, так и в другую сторону.

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

Еще раз повторяю: ООП в Javascript убог: посмотрите потуги в nodejs. Это КЛЮЧЕВОЕ условие в современном программировании: без ООП никуда.

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

Я далек от всяких nodejs, с Javascript'ом вообще знаком не был до недавнего времени. Ради интереса попробовал написать утилиту через биндинг gjs в ООП-стиле. Далось легко, язык ничем не хуже других. ИМХО.

nvl ★★★★
()

Мадмуазель, из перспективных направлений на ближайшие лет писят — IoT, AI, AR, VR и прочий R, QC, BC. А потом это все породит скайнет и всем писец!

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

Но ведь утверждения бросаешь ты, а не анонимус. так вот и соизволь, по своему собственному тому же самому примеру - показать, что наследование в JS это убого и костыльно. Не тебе должны доказывать, а ты, ибо утверждать начал ты. Иначе, ты действительно дурак. Ибо все твои доводы исключительно субъективное восприятие.

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

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

Потому что есть задачи, где его проще всего использовать. Конкретно мне он нужен, чтобы chromeless пускать (с ним удобнее чем с selenium работать, т.к. можно выполнять JS в контексте браузера и получать из него return прозрачно).

Norgat ★★★★★
()

функциональное программирование функциональным делают функции первого класса и ссылочная прозрачность

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

И да, конкретная реализация ООП особо не играет роли. Это вообще меньшая из зол JS'а. Вот callback hell или, например, складывание числа с undefined с результатом NaN вместо exception - вот это реальные проблемы JS'а, т.к. ведут к сложно читаемому и разрабатываемому коду и тяжелой отладке с непонятной точкой проблемы.

Norgat ★★★★★
()

Посмотрите на примеры кода в R и составите представление об этом.

bookman900 ★★★★★
()

Пффф, а пальцы гнула что суперпрограммистка под лотус-нотес...
Функциональное программирование - это способ организации вычислений особым образом с целью обеспечения ускорения за счёт распараллеливания.
https://ru.wikipedia.org/wiki/Функциональное_программирование

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

Непонятно, что такое «модель вычислений без состояний».


Ой всё.

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

с целью обеспечения ускорения за счёт распараллеливания

Конечно нет. Главная цель этого «особого образа организации» - больше фана от процесса, остальное - вторично.

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