История изменений
Исправление liksys, (текущая версия) :
в любом случае это побочным эффектом не считается
Очень удобно.
но я думаю, такое допустимо
Ну вот, пошли расхождения в толковании «не убий». Вроде и низя, но для крестовых походов сделаем исключение. Это отлично демонстрирует, что столяровское разделение искусственно и не имеет ничего общего с реальностью.
Можно возвращать значение через var-параметр
Это увеличивает кашу в голове и начинают появляться вопросы, а нахрена оно вообще всё надо было, если в итоге всё сводится к возвращаемым значениям разного рода.
Именно по этой причине ни один современный императивный язык не имеет деления на процедуры и функции: потому что граница расплывчата, и в реальности проще сделать одну удобную конструкцию и для процедур, и для функций. В этом плане питон даже лучше: ты можешь вернуть несколько значений в виде результатов вычислений.
Разница есть как раз таки в голове… сразу видно, где вызов подпрограммы ради эффекта (не побочного, а именно основного), а где ради значения.
Поэтому проще учить нормальные языки типа питона и си, в которых нет искусственного разделения, и просто объяснить, что не надо менять входные данные без необходимости. А в случае си просто обмажься const-модификаторами, и сразу станет ясно, есть тут локальный (!) побочный эффект, или нет.
А почему бы и нет? Если давать для начала Pascal и объяснить различие между функциями и процедурами, то автоматически всё будет.
Нет смысла и количество учебных часов ограничено. Перечитывай мой исходный пост в этом треде, там всё доступно расписано.
Исправление liksys, :
в любом случае это побочным эффектом не считается
Очень удобно.
но я думаю, такое допустимо
Ну вот, пошли расхождения в толковании «не убий». Вроде и низя, но для крестовых походов сделаем исключение. Это отлично демонстрирует, что столяровское разделение искусственно и не имеет ничего общего в реальности.
Можно возвращать значение через var-параметр
Это увеличивает кашу в голове и начинают появляться вопросы, а нахрена оно вообще всё надо было, если в итоге всё сводится к возвращаемым значениям разного рода.
Именно по этой причине ни один современный императивный язык не имеет деления на процедуры и функции: потому что граница расплывчата, и в реальности проще сделать одну удобную конструкцию и для процедур, и для функций. В этом плане питон даже лучше: ты можешь вернуть несколько значений в виде результатов вычислений.
Разница есть как раз таки в голове… сразу видно, где вызов подпрограммы ради эффекта (не побочного, а именно основного), а где ради значения.
Поэтому проще учить нормальные языки типа питона и си, в которых нет искусственного разделения, и просто объяснить, что не надо менять входные данные без необходимости. А в случае си просто обмажься const-модификаторами, и сразу станет ясно, есть тут локальный (!) побочный эффект, или нет.
А почему бы и нет? Если давать для начала Pascal и объяснить различие между функциями и процедурами, то автоматически всё будет.
Нет смысла и количество учебных часов ограничено. Перечитывай мой исходный пост в этом треде, там всё доступно расписано.
Исправление liksys, :
в любом случае это побочным эффектом не считается
Очень удобно.
но я думаю, такое допустимо
Ну вот, пошли расхождения в толковании «не убий». Вроде и низя, но для крестовых походов сделаем исключение. Это отлично демонстрирует, что столяровское разделение искусственно и не имеет ничего общего в реальности.
Можно возвращать значение через var-параметр
Это увеличивает кашу в голове и начинают появляться вопросы, а нахрена оно вообще всё надо было, если в итоге всё сводится к возвращаемым значениям разного рода.
Именно по этой причине ни один современный императивный язык, в том числе сделанный академистами, не имеет деления на процедуры и функции: потому что граница расплывчата, и в реальности проще сделать одну удобную конструкцию и для процедур, и для функций. В этом плане питон даже лучше: ты можешь вернуть несколько значений в виде результатов вычислений.
Разница есть как раз таки в голове… сразу видно, где вызов подпрограммы ради эффекта (не побочного, а именно основного), а где ради значения.
Поэтому проще учить нормальные языки типа питона и си, в которых нет искусственного разделения, и просто объяснить, что не надо менять входные данные без необходимости. А в случае си просто обмажься const-модификаторами, и сразу станет ясно, есть тут локальный (!) побочный эффект, или нет.
А почему бы и нет? Если давать для начала Pascal и объяснить различие между функциями и процедурами, то автоматически всё будет.
Нет смысла и количество учебных часов ограничено. Перечитывай мой исходный пост в этом треде, там всё доступно расписано.
Исходная версия liksys, :
в любом случае это побочным эффектом не считается
Очень удобно.
но я думаю, такое допустимо
Ну вот, пошли расхождения в толковании «не убий». Вроде и низя, но для крестовых походов сделаем исключение. Это отлично демонстрируею, что столяровское разделение искусственно и не имеет ничего общего в реальности.
Можно возвращать значение через var-параметр
Это увеличивает кашу в голове и начинают появляться вопросы, а нахрена оно вообще всё надо было, если в итоге всё сводится к возвращаемым значениям разного рода.
Именно по этой причине ни один современный язык, в том числе сделанный академистами, не имеет деления на процедуры и функции: потому что граница расплывчата, и в реальности проще сделать одну удобную конструкцию и для процедур, и для функций. В этом плане питон даже лучше: ты можешь вернуть несколько значений в виде результатов вычислений.
Разница есть как раз таки в голове… сразу видно, где вызов подпрограммы ради эффекта (не побочного, а именно основного), а где ради значения.
Поэтому проще учить нормальные языки типа питона и си, в которых нет искусственного разделения, и просто объяснить, что не надо менять входные данные без необходимости. А в случае си просто обмажься const-модификаторами, и сразу станет ясно, есть тут локальный (!) побочный эффект, или нет.
А почему бы и нет? Если давать для начала Pascal и объяснить различие между функциями и процедурами, то автоматически всё будет.
Нет смысла и количество учебных часов ограничено. Перечитывай мой исходный пост в этом треде, там всё доступно расписано.