Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## For the Geeks: Lambdas\n",
"\n",
"* Sometimes our code expects values that must be calculate first, for a function parameter.\n",
"* In Python, we can do this wiht Lambda functions.\n",
"* Lambdas are functions that are declared right where they are used and only persist for the time beeing executed (generally such functions are also called annoynomous functions, because they don't have a name).\n",
"* Like functions, Lambdas are as objects, and they can be passed to as a function argument.\n",
"\n",
"Syntay of a Lambda is:\n",
"```\n",
"lambda arguments : expression\n",
"```\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"15\n"
]
}
],
"source": [
"x = lambda a : a + 10 # a is the argument, a + 10 is the expression, the result is assigned to x\n",
"print(x(5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Exampele:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<map at 0x107955ed0>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def double(x):\n",
" return x * 2\n",
"\n",
"map(double, [1,2,3,4])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Can be forumulated as:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<map at 0x107954f40>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"map(lambda x: x * 2, [1,2,3,4])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Which seem s a lot more elegant to me"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}