Commit bbc6987a authored by cermak's avatar cermak
Browse files

Lesson 9

parent 47d75288
Pipeline #21416 failed with stage
in 26 seconds
\documentclass{beamer} \documentclass{beamer}
\title{Programování 1: Triky s funkcemi} \title{Programování 1.9: Lambda funkce}
\input ../slidemac.tex \input ../slidemac.tex
...@@ -15,6 +15,27 @@ ...@@ -15,6 +15,27 @@
% ---------------------------------------------------------------------- % ----------------------------------------------------------------------
\begin{frame}{Jak python chápe funkce}
\begin{itemize}
\item Funkce je objekt, stejně jako int, str, list
\item Dají se
\begin{itemize}
\item definovat,
\item mazat,
\item předávat jiným funkcím jako parametr,
\item vracet pomocí slova return
\end{itemize}
\end{itemize}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}{Funkce jako parametr} \begin{frame}{Funkce jako parametr}
\pycode{po_slozkach.py} \pycode{po_slozkach.py}
...@@ -96,6 +117,11 @@ sorted(p, key=lambda x: x[1]) ...@@ -96,6 +117,11 @@ sorted(p, key=lambda x: x[1])
\begin{frame}{Lambdy ve standardní knihovně: map} \begin{frame}{Lambdy ve standardní knihovně: map}
Vestavěná funkce map má dva argumenty, funkci a iterable (=list, generátor...).
Aplikuje funkci postupně na všechny prvky a yielduje výsledky.
\bigskip
\py{% \py{%
cisla = map(int, ["12", "34"])\\ cisla = map(int, ["12", "34"])\\
list(cisla) list(cisla)
...@@ -176,6 +202,23 @@ b() ...@@ -176,6 +202,23 @@ b()
\end{frame} \end{frame}
% ----------------------------------------------------------------------
\begin{frame}{Úkoly na hodinu}
\begin{itemize}
\item Napište funkci compose(f,g), která pro dvě funkce f a g (obě s jedním parametrem) vrátí funkci, jež je jejich složením (f(g(x))).
\item Napište funkci red(s,f), která dostane seznam s a funkci f(x,y) a spočítá f(f(f(s[0], s[1]), s[3]), s[4]).
\item Zapište pomocí redukce součet prvků seznamu.
\item Zapište pomocí redukce nalezení maxima seznamu.
\item Zapište pomocí redukce nalezení prvního nenulového prvku (není-li, vraťte 0).
\item Co redukce udělá pro operátor -?
\item Co udělá red(s, lambda x, y: (x,y))?
\end{itemize}
\end{frame}
% ---------------------------------------------------------------------- % ----------------------------------------------------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment