Files
honore-beaugrand/Cours numero 3.ipynb
T

180 lines
5.0 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Class 3. keep going"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The homework was **way** too hard!!\n",
"\n",
"We needed some more tools..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The [concat](https://clojuredocs.org/clojure.core/concat) function is used to concatenate collections togheter."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Homework correction (Part 1)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{:name \"class 1\", :url \"https://gitlab.com/didiercrunch/honore-beaugrand/raw/master/resources/data/homework2/class1.edn\"} {:name \"class 2\", :url \"https://gitlab.com/didiercrunch/honore-beaugrand/raw/master/resources/data/homework2/class2.edn\"} {:name \"class 3\", :url \"https://gitlab.com/didiercrunch/honore-beaugrand/raw/master/resources/data/homework2/class3.edn\"}]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def school-url \"https://gitlab.com/didiercrunch/honore-beaugrand/raw/master/resources/data/homework2/classes.edn\")\n",
"(def school-data (read-string (slurp school-url)))\n",
"\n",
"school-data"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"([{:name \"boris\", :sex :male, :age 22} {:name \"bob\", :sex :female, :age 25} {:name \"andrea\", :sex :male, :age 33} {:name \"stephanie\", :sex :female, :age 12} {:name \"alexa\", :sex :female, :age 90} {:name \"boris\", :sex :female, :age 12} {:name \"nathasha\", :sex :male, :age 32} {:name \"marco\", :sex :male, :age 30}] [{:name \"enrico\", :sex :male, :age 32} {:name \"raquel\", :sex :female, :age 15} {:name \"alfred\", :sex :male, :age 17} {:name \"kery\", :sex :female, :age 101} {:name \"alexa\", :sex :female, :age 43} {:name \"dominique\", :sex :female, :age 30} {:name \"sofia\", :sex :male, :age 33} {:name \"clory\", :sex :male, :age 45}] [{:name \"Scot\", :sex :male, :age 23} {:name \"Annmarie\", :sex :female, :age 15} {:name \"Jeremy\", :sex :male, :age 17} {:name \"Theodora\", :sex :female, :age 67} {:name \"Andria\", :sex :female, :age 45} {:name \"Kyoko\", :sex :female, :age 39} {:name \"Jeanine\", :sex :male, :age 41} {:name \"Jeanine\", :sex :male, :age 45}])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def class-urls (map :url school-data))\n",
"(def class-data-raw (map slurp class-urls))\n",
"(def class-data (map read-string class-data-raw))\n",
"class-data"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The total number of student in the school is: 24\n"
]
}
],
"source": [
"(def number-of-student-by-class (map count class-data))\n",
"(def number-of-student-in-the-school (apply + number-of-student-by-class))\n",
"(println \"The total number of student in the school is:\" number-of-student-in-the-school)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"#'user/all-student"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def all-student (apply concat class-data))"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The youngest person is aged 12\n",
"The oldest person is aged 101\n"
]
}
],
"source": [
"(def all-ages (map :age all-student))\n",
"\n",
"(def youger-age (apply min all-ages))\n",
"(def older-age (apply max all-ages))\n",
"\n",
"(println \"The youngest person is aged \" youger-age)\n",
"(println \"The oldest person is aged \" older-age)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"the average age is 36.0\n"
]
}
],
"source": [
"(def sum-of-all-ages (apply + all-ages))\n",
"(def average-age (/ sum-of-all-ages number-of-student-in-the-school))\n",
"(println \"the average age is \" (double average-age))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Lein-Clojure",
"language": "clojure",
"name": "lein-clojure"
},
"language_info": {
"file_extension": ".clj",
"mimetype": "text/x-clojure",
"name": "clojure",
"version": "1.9.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}