Показаны сообщения с ярлыком функции. Показать все сообщения
Показаны сообщения с ярлыком функции. Показать все сообщения

Функции в языке Python

Хорошей практикой структурирования кода является написание функций.

Синтаксис:
def function_name(argument1, argument2):
 # function body
 return argument1 + argument2
x = function_name(2, 8)
y = function_name(x, 21)
print(y)
Отступ в четыре пробела в теле функции является важным.
Имена переменных в языке Python, в том числе имена функций и имена аргументов могут содержать в себе только латиницу, цифры и символ нижнего подчеркивания. И при этом не могут начинаться с цифры.

Определение функции не выполняется интерпретатором построчно, а выполняется целиком.

Функции в языке Python также являются объектами:


Объект функции хранит в себе очень много всего: название функции, аргументы и тело функции.


Пример:
def list_sum(lst):
 result = 0
 for element in lst:
  result += element
 return result

def sum(a, b):
 return a + b

y = sum(14, 29)
z = list_sum([1, 2, 3])
print(y)
print(z)

Функции в Haskell

Синтаксис применения функции

Синтаксис двух последовательных идентификаторов означает применение функции foo к своему аргументу bar:
foo bar

На Haskell вызов функции не требует заключения аргумента в скобки. 

Скобки используются для группировки аргументов:
acos (cos pi)

Функция нескольких аргументов:
max 5 42

Операция применения функции ассоциативна влево:
(max 5) 42
Функция max последовательно применяется к двум аргументам.
Компилятор понимает конструкцию f x y как (f x) y, а не наоборот f (x y).

Выражение (max 5) это так называемое частичное применение функции. В общем виде его можно сформулировать следующим образом: если у нас имеется функция N переменных и мы смотрим на неё как на функцию N переменных, то мы можем взглянуть на неё с другой стороны и сказать, что это функция одной переменной возвращающая нам функцию N - 1 переменной.
3 + sin 42
3 + (max 5) 42