Найти - Пользователи
Полная версия: как разделить данные по колонкам
Начало » Python для новичков » как разделить данные по колонкам
1 2 3
Shaman
Iskatel
В ассемблере есть функции.
Функций в ассемблере нет.
doza_and
Iskatel
Так и на сях можно функциями не пользоваться
Можно не пользоваться, но, если вы внимательно прочитаете пост, то заметите что я написал что вывод на терминал осуществляется функциями. Поэтому без функций вывод колонок не получится.
doza_and
Shaman
Функций в ассемблере нет.
Я всегда думал что есть. Есть инструкция call, она пихает sp и передает управление в друге место. Есть ret с обратными действиями.
http://www.cs.nyu.edu/courses/fall04/V22.0201-003/ia32_chap_03.pdf
Если быть точнее то это свойства не ассемблера а процессора.
Shaman
doza_and
Есть инструкция call, она пихает sp и передает управление в друге место. Есть ret с обратными действиями.
Бывает ещё пролог и эпилог. Это механизм вызова подпрограмм, которые в свете функциональной парадигмы я бы постеснялся называть функциями. Так что функций там нет.
В старых бейсиках даже DEF жил рядом с GOSUB.
doza_and
А что вы стесняетесь.
смотрим wiki:

"Фу́нкция в программировании — фрагмент программного кода (подпрограмма), к которому можно обратиться из другого места программы. В большинстве случаев с функцией связывается идентификатор, но многие языки допускают и безымянные функции. С именем функции неразрывно связан адрес первой инструкции (оператора), входящей в функцию, которой передаётся управление при обращении к функции. После выполнения функции управление возвращается обратно в адрес возврата — точку программы, где данная функция была вызвана."

То что есть в ассемблере не противоречит этому определению. Что вас собственно не устраивает в функциях языка Ассемблер?
Shaman
Пусть эту статью читают писавшие её школьники.
В ассемблере есть только подпрограммы, которые не тождественны функциям. Более того, вызов call не обязательно вызывает именно подпрограмму, а вызов ret не обязательно выходит из таковой. Так же нет общепринятых соглашений по возвращению значений из подпрограмм.
doza_and
Что вас собственно не устраивает в функциях языка Ассемблер?
Я не могу как-либо относиться к несуществующему.
doza_and
Shaman
В ассемблере есть только подпрограммы, которые не тождественны функциям.
Если вы считаете принципиально разными подпрограммы и функции, то безусловно вы правы. Именно функций нет.
Ваши претензии к низкому уровню содержания вики это претензии к вам. Если вы считаете что там неправильно написано и вы лучше знаете, то поправьте Вики и мне не куда будет ссылаться. А мы посмотрим сколько людей с вашей трактовкой согласится. :) Я согласен с текущей трактовкой. Главное переходы на новую последовательность команд и возвраты назад.

p.s.
Мы слишком удалились от основной темы этой ветки. А терминологические препирательства мало кому интересны.
Shaman
doza_and
Ваши претензии к низкому уровню содержания вики это претензии к вам. Если вы считаете что там неправильно написано и вы лучше знаете, то поправьте Вики и мне не куда будет ссылаться. А мы посмотрим сколько людей с вашей трактовкой согласится. Я согласен с текущей трактовкой. Главное переходы на новую последовательность команд и возвраты назад.
Я поступил проще: зашел с другой стороны, к другим авторам.
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0#.D0.92.D0.B8.D0.B4.D1.8B_.D0.BF.D0.BE.D0.B4.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC
Могу предположить, функции с подпрограммами отождествляют только те, которые ничего слаще C и производных не ели. Мне же, при осваивании ассемблера, нигде, ни единого раза не попалось на глаза слово “функция” и мне абсолютно понятно почему.
doza_and
А терминологические препирательства мало кому интересны.
Это не терминологические препирательства, это проблема правильного понимания сути, проблема выбора правильной абстракции (по Макконнеллу), если угодно.
doza_and
Shaman
проблема выбора правильной абстракции
Да и еще раз да!!!. Конечно это вопрос типа выберите что вам ближе:
  • Функция это специальный вид подпрограммы которая возвращает значение.
  • Подпрограмма это специальный вид функции которая не возвращает значения.
И совершенно верно подмечено, это влияние С и его производных: c++, java, C#,…. и, кстати Python.
С другой стороны тоже уважаемые языки Pascal, FORTRAN, ADA…

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

Есть еще третья альтернатива. Выделить третий обобщающий функции и процедуры термин. Но такое вообще никто не поймет.

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

p.s. Прошу извинить, последнее время стал замечать у себя черезмерную тягу к обобщениям, похоже в этом посте она сделала мои сообщения малопонятными.
Shaman
doza_and
А по сути я даже затрудняюсь придумать пример где будет важно какой из взглядов использовать. Как я и отмечал все это это методы передачи управления, ну чуток разные.
Вы упустили из поля зрения один момент: “Вызов функции является, с точки зрения языка программирования, выражением, он может использоваться в других выражениях или в качестве правой части присваивания.”. Идеологически чистая процедура не возвращает ничего, даже None.

Днём пришло на ум показать один пример для медитаций.
var
value : Integer;

function Sum(a, b : Integer) : Integer;
begin
Sum := a + b;
end;

procedure SumG(a, b : Integer);
begin
value := a + b;
end;

procedure SumR(var result : Integer; a, b : Integer);
begin
result := a + b;
end;
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB