initial commit

This commit is contained in:
Dmitriy Pleshevskiy 2022-09-08 17:50:24 +03:00
commit 89f95d011e
Signed by: pleshevskiy
GPG Key ID: 1B59187B161C0215
12 changed files with 1024 additions and 0 deletions

293
flake.lock Normal file
View File

@ -0,0 +1,293 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1631705391,
"narHash": "sha256-PzP6vikNJZiS7yANC6sZWQlIDf4E2MTckvAsJxwV0DQ=",
"owner": "teto",
"repo": "flake-compat",
"rev": "8e15c6e3c0f15d0687a2ab6ae92cc7fab896bfed",
"type": "github"
},
"original": {
"owner": "teto",
"ref": "support-packages",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1627913399,
"narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1627913399,
"narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1631561581,
"narHash": "sha256-3VQMV5zvxaVLvqqUrNz3iJelLw30mIVSfZmAaauM3dA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "7e5bf3925f6fbdfaf50a2a7ca0be2879c4261d19",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"locked": {
"lastModified": 1629481132,
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "997f7efcb746a9c140ce1f13c72263189225f482",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gitignore": {
"flake": false,
"locked": {
"lastModified": 1611672876,
"narHash": "sha256-qHu3uZ/o9jBHiA3MEKHJ06k7w4heOhA+4HCSIvflRxo=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "211907489e9f198594c0eb0ca9256a1949c9d412",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"hls": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_3",
"gitignore": "gitignore",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1637213318,
"narHash": "sha256-ZgxPwV7t4DyGYP7aXoetq+JHtd73XlOV2fYSflQmOXw=",
"owner": "haskell",
"repo": "haskell-language-server",
"rev": "311107eabbf0537e0c192b2c377d282505b4eff1",
"type": "github"
},
"original": {
"owner": "haskell",
"repo": "haskell-language-server",
"type": "github"
}
},
"ihaskell": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_2",
"hls": "hls",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1661486016,
"narHash": "sha256-Ch9dQ82fLV0QuyrJ+J1tVxxrSLSA+NIdiikvV0+Hvrs=",
"owner": "gibiansky",
"repo": "IHaskell",
"rev": "53f8e0773822ddf2cd392309ba27c8ff8e30202e",
"type": "github"
},
"original": {
"owner": "gibiansky",
"repo": "IHaskell",
"type": "github"
}
},
"jupyterWith": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"ihaskell": "ihaskell",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1661799532,
"narHash": "sha256-E2YL6Ycf59HWglKjSUV09bV8f15lEBGKLs6ahndmqaM=",
"owner": "tweag",
"repo": "jupyterWith",
"rev": "0b7f2e843f023c89283daf53eabce322efc9ca7c",
"type": "github"
},
"original": {
"owner": "tweag",
"repo": "jupyterWith",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1630887066,
"narHash": "sha256-0ecIlrLsNIIa+zrNmzXXmbMBLZlmHU/aWFsa4bq99Hk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5e47a07e9f2d7ed999f2c7943b0896f5f7321ca3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1634515797,
"narHash": "sha256-elgCUC2khtBkOSpE4gDymNvthTZAI4hGI2iNu3YEUkA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5f0194220f2402b06f7f79bba6351895facb5acb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1659446231,
"narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "eabc38219184cc3e04a974fe31857d8e0eac098d",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "release-21.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1662096612,
"narHash": "sha256-R+Q8l5JuyJryRPdiIaYpO5O3A55rT+/pItBrKcy7LM4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "21de2b973f9fee595a7a1ac4693efff791245c34",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-utils": [
"jupyterWith",
"ihaskell",
"hls",
"flake-utils"
],
"nixpkgs": [
"jupyterWith",
"ihaskell",
"hls",
"nixpkgs"
]
},
"locked": {
"lastModified": 1624971177,
"narHash": "sha256-Amf/nBj1E77RmbSSmV+hg6YOpR+rddCbbVgo5C7BS0I=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "397f0713d007250a2c7a745e555fa16c5dc8cadb",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"jupyterWith": "jupyterWith",
"nixpkgs": "nixpkgs_4",
"utils": "utils"
}
},
"utils": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

36
flake.nix Normal file
View File

@ -0,0 +1,36 @@
{
inputs = {
jupyterWith.url = "github:tweag/jupyterWith";
utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, jupyterWith, utils }:
utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = builtins.attrValues jupyterWith.overlays;
};
iHaskell = pkgs.kernels.iHaskellWith {
name = "haskell";
packages = p: [ ];
};
iNix = pkgs.kernels.iNixKernel {
name = "nix";
};
jupyterLab = pkgs.jupyterlabWith {
kernels = [ iHaskell iNix ];
};
in
{
apps.default = {
type = "app";
program = "${jupyterLab}/bin/jupyter-lab";
};
devShell = jupyterLab.env;
});
}

View File

@ -0,0 +1,89 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "f6a5bb29-6834-41a0-a929-8e035675eb9d",
"metadata": {},
"outputs": [],
"source": [
"predict x = x `rem` 3 == 0 || x `rem` 5 == 0"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3ce07c68-c750-4d39-b593-dcdb6e22fade",
"metadata": {},
"outputs": [],
"source": [
"filtered = filter predict [1..999]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "52551454-c27c-4ac7-8967-02d9f1704fc8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[3,5,6,9,10,12,15,18,20,21,24,25,27,30,33,35,36,39,40,42,45,48,50,51,54,55,57,60,63,65,66,69,70,72,75,78,80,81,84,85,87,90,93,95,96,99,100,102,105,108,110,111,114,115,117,120,123,125,126,129,130,132,135,138,140,141,144,145,147,150,153,155,156,159,160,162,165,168,170,171,174,175,177,180,183,185,186,189,190,192,195,198,200,201,204,205,207,210,213,215,216,219,220,222,225,228,230,231,234,235,237,240,243,245,246,249,250,252,255,258,260,261,264,265,267,270,273,275,276,279,280,282,285,288,290,291,294,295,297,300,303,305,306,309,310,312,315,318,320,321,324,325,327,330,333,335,336,339,340,342,345,348,350,351,354,355,357,360,363,365,366,369,370,372,375,378,380,381,384,385,387,390,393,395,396,399,400,402,405,408,410,411,414,415,417,420,423,425,426,429,430,432,435,438,440,441,444,445,447,450,453,455,456,459,460,462,465,468,470,471,474,475,477,480,483,485,486,489,490,492,495,498,500,501,504,505,507,510,513,515,516,519,520,522,525,528,530,531,534,535,537,540,543,545,546,549,550,552,555,558,560,561,564,565,567,570,573,575,576,579,580,582,585,588,590,591,594,595,597,600,603,605,606,609,610,612,615,618,620,621,624,625,627,630,633,635,636,639,640,642,645,648,650,651,654,655,657,660,663,665,666,669,670,672,675,678,680,681,684,685,687,690,693,695,696,699,700,702,705,708,710,711,714,715,717,720,723,725,726,729,730,732,735,738,740,741,744,745,747,750,753,755,756,759,760,762,765,768,770,771,774,775,777,780,783,785,786,789,790,792,795,798,800,801,804,805,807,810,813,815,816,819,820,822,825,828,830,831,834,835,837,840,843,845,846,849,850,852,855,858,860,861,864,865,867,870,873,875,876,879,880,882,885,888,890,891,894,895,897,900,903,905,906,909,910,912,915,918,920,921,924,925,927,930,933,935,936,939,940,942,945,948,950,951,954,955,957,960,963,965,966,969,970,972,975,978,980,981,984,985,987,990,993,995,996,999]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"-- filtered"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1437aa9e-c83a-4bbb-a5c3-be4415f8b3f2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"233168"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sum filtered"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "311e677a-7185-4718-a839-ace350ecb502",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Haskell - haskell",
"language": "haskell",
"name": "ihaskell_haskell"
},
"language_info": {
"codemirror_mode": "ihaskell",
"file_extension": ".hs",
"mimetype": "text/x-haskell",
"name": "haskell",
"pygments_lexer": "Haskell",
"version": "9.0.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@ -0,0 +1,169 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "bff727d0-70bf-42cf-a12c-ee5823037315",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
":l <nixpkgs>\n",
"Added 17051 variables.\u001b[0m\n",
"\n"
]
}
],
"source": [
":l <nixpkgs>"
]
},
{
"cell_type": "markdown",
"id": "1de5854d-a1dd-4c88-bad5-571c0e4dab8e",
"metadata": {},
"source": [
"# fake rem because nix doesn't support this operation"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "8773113c-494f-45d8-a8c1-4f1ac8b60266",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"rem = a: b:\n",
" let\n",
" x = builtins.div a b;\n",
" cx = builtins.ceil x;\n",
" in x == cx\n",
"\n"
]
}
],
"source": [
"rem = a: b:\n",
" let\n",
" x = builtins.div a b;\n",
" cx = builtins.ceil x;\n",
" in x == cx"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "25c08a9f-b2ef-451a-9791-f0fd75cf6f00",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"predicate = x: (rem x 3.) || (rem x 5.)\n",
"\n"
]
}
],
"source": [
"predicate = x: (rem x 3.) || (rem x 5.)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "754560b4-01c3-401c-a9ab-14fe56a9a80c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"input = lib.range 1 999\n",
"\n"
]
}
],
"source": [
"input = lib.range 1 999"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1bbc464a-bedc-4742-ae1d-d06039df53f5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"filtered = lib.filter predicate input\n",
"\n"
]
}
],
"source": [
"filtered = lib.filter predicate input"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "5a08e129-b2fe-43b5-a22f-bb6a0e69adb6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sum = list: lib.foldr builtins.add 0 list\n",
"\n"
]
}
],
"source": [
"sum = list: lib.foldr builtins.add 0 list"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "1dcaf52d-5526-4755-9454-d79238b9454f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sum filtered\n",
"\u001b[36;1m233168\u001b[0m\n",
"\n"
]
}
],
"source": [
"sum filtered"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Nix - nix",
"language": "Nix",
"name": "inix_nix"
},
"language_info": {
"file_extension": ".nix",
"mimetype": "text/nix",
"name": "nix"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@ -0,0 +1,89 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "f6a5bb29-6834-41a0-a929-8e035675eb9d",
"metadata": {},
"outputs": [],
"source": [
"predict x = x `rem` 3 == 0 || x `rem` 5 == 0"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3ce07c68-c750-4d39-b593-dcdb6e22fade",
"metadata": {},
"outputs": [],
"source": [
"filtered = filter predict [1..999]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "52551454-c27c-4ac7-8967-02d9f1704fc8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[3,5,6,9,10,12,15,18,20,21,24,25,27,30,33,35,36,39,40,42,45,48,50,51,54,55,57,60,63,65,66,69,70,72,75,78,80,81,84,85,87,90,93,95,96,99,100,102,105,108,110,111,114,115,117,120,123,125,126,129,130,132,135,138,140,141,144,145,147,150,153,155,156,159,160,162,165,168,170,171,174,175,177,180,183,185,186,189,190,192,195,198,200,201,204,205,207,210,213,215,216,219,220,222,225,228,230,231,234,235,237,240,243,245,246,249,250,252,255,258,260,261,264,265,267,270,273,275,276,279,280,282,285,288,290,291,294,295,297,300,303,305,306,309,310,312,315,318,320,321,324,325,327,330,333,335,336,339,340,342,345,348,350,351,354,355,357,360,363,365,366,369,370,372,375,378,380,381,384,385,387,390,393,395,396,399,400,402,405,408,410,411,414,415,417,420,423,425,426,429,430,432,435,438,440,441,444,445,447,450,453,455,456,459,460,462,465,468,470,471,474,475,477,480,483,485,486,489,490,492,495,498,500,501,504,505,507,510,513,515,516,519,520,522,525,528,530,531,534,535,537,540,543,545,546,549,550,552,555,558,560,561,564,565,567,570,573,575,576,579,580,582,585,588,590,591,594,595,597,600,603,605,606,609,610,612,615,618,620,621,624,625,627,630,633,635,636,639,640,642,645,648,650,651,654,655,657,660,663,665,666,669,670,672,675,678,680,681,684,685,687,690,693,695,696,699,700,702,705,708,710,711,714,715,717,720,723,725,726,729,730,732,735,738,740,741,744,745,747,750,753,755,756,759,760,762,765,768,770,771,774,775,777,780,783,785,786,789,790,792,795,798,800,801,804,805,807,810,813,815,816,819,820,822,825,828,830,831,834,835,837,840,843,845,846,849,850,852,855,858,860,861,864,865,867,870,873,875,876,879,880,882,885,888,890,891,894,895,897,900,903,905,906,909,910,912,915,918,920,921,924,925,927,930,933,935,936,939,940,942,945,948,950,951,954,955,957,960,963,965,966,969,970,972,975,978,980,981,984,985,987,990,993,995,996,999]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"-- filtered"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1437aa9e-c83a-4bbb-a5c3-be4415f8b3f2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"233168"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sum filtered"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "311e677a-7185-4718-a839-ace350ecb502",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Haskell - haskell",
"language": "haskell",
"name": "ihaskell_haskell"
},
"language_info": {
"codemirror_mode": "ihaskell",
"file_extension": ".hs",
"mimetype": "text/x-haskell",
"name": "haskell",
"pygments_lexer": "Haskell",
"version": "9.0.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

169
projecteuler/1/nix.ipynb Normal file
View File

@ -0,0 +1,169 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "bff727d0-70bf-42cf-a12c-ee5823037315",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
":l <nixpkgs>\n",
"Added 17051 variables.\u001b[0m\n",
"\n"
]
}
],
"source": [
":l <nixpkgs>"
]
},
{
"cell_type": "markdown",
"id": "1de5854d-a1dd-4c88-bad5-571c0e4dab8e",
"metadata": {},
"source": [
"# fake rem because nix doesn't support this operation"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "8773113c-494f-45d8-a8c1-4f1ac8b60266",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"rem = a: b:\n",
" let\n",
" x = builtins.div a b;\n",
" cx = builtins.ceil x;\n",
" in x == cx\n",
"\n"
]
}
],
"source": [
"rem = a: b:\n",
" let\n",
" x = builtins.div a b;\n",
" cx = builtins.ceil x;\n",
" in x == cx"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "25c08a9f-b2ef-451a-9791-f0fd75cf6f00",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"predicate = x: (rem x 3.) || (rem x 5.)\n",
"\n"
]
}
],
"source": [
"predicate = x: (rem x 3.) || (rem x 5.)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "754560b4-01c3-401c-a9ab-14fe56a9a80c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"input = lib.range 1 999\n",
"\n"
]
}
],
"source": [
"input = lib.range 1 999"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1bbc464a-bedc-4742-ae1d-d06039df53f5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"filtered = lib.filter predicate input\n",
"\n"
]
}
],
"source": [
"filtered = lib.filter predicate input"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "5a08e129-b2fe-43b5-a22f-bb6a0e69adb6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sum = list: lib.foldr builtins.add 0 list\n",
"\n"
]
}
],
"source": [
"sum = list: lib.foldr builtins.add 0 list"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "1dcaf52d-5526-4755-9454-d79238b9454f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sum filtered\n",
"\u001b[36;1m233168\u001b[0m\n",
"\n"
]
}
],
"source": [
"sum filtered"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Nix - nix",
"language": "Nix",
"name": "inix_nix"
},
"language_info": {
"file_extension": ".nix",
"mimetype": "text/nix",
"name": "nix"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@ -0,0 +1,3 @@
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.

View File

@ -0,0 +1,83 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"id": "0f99fcb7-762f-447c-833d-f0e61b01cd3c",
"metadata": {},
"outputs": [],
"source": [
"fibs = 0 : 1 : zipWith (+) fibs (tail fibs)"
]
},
{
"cell_type": "markdown",
"id": "21cd7022-93ad-44e4-af07-695f2831ca47",
"metadata": {},
"source": [
"it looks like the following"
]
},
{
"cell_type": "raw",
"id": "202121f5-b7d3-4a23-b29b-d0ad679cc5d2",
"metadata": {},
"source": [
"0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765"
]
},
{
"cell_type": "markdown",
"id": "e49c7c8c-8f40-4429-91c7-6f8ffd6ec261",
"metadata": {},
"source": [
"get first item of each iteration and then drop 3 items from the beginning"
]
},
{
"cell_type": "raw",
"id": "b92a154b-99ad-4558-aeb1-635a4ad04570",
"metadata": {},
"source": [
"0,2,8,34,144,610,2584"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "9265e55e-64e6-4aff-a541-5896a032f66b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4613732"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sum . takeWhile (<= 4000000) . map head . iterate (drop 3) $ fibs"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Haskell - haskell",
"language": "haskell",
"name": "ihaskell_haskell"
},
"language_info": {
"codemirror_mode": "ihaskell",
"file_extension": ".hs",
"mimetype": "text/x-haskell",
"name": "haskell",
"pygments_lexer": "Haskell",
"version": "9.0.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@ -0,0 +1,5 @@
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

View File

@ -0,0 +1,83 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"id": "0f99fcb7-762f-447c-833d-f0e61b01cd3c",
"metadata": {},
"outputs": [],
"source": [
"fibs = 0 : 1 : zipWith (+) fibs (tail fibs)"
]
},
{
"cell_type": "markdown",
"id": "21cd7022-93ad-44e4-af07-695f2831ca47",
"metadata": {},
"source": [
"it looks like the following"
]
},
{
"cell_type": "raw",
"id": "202121f5-b7d3-4a23-b29b-d0ad679cc5d2",
"metadata": {},
"source": [
"0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765"
]
},
{
"cell_type": "markdown",
"id": "e49c7c8c-8f40-4429-91c7-6f8ffd6ec261",
"metadata": {},
"source": [
"get first item of each iteration and then drop 3 items from the beginning"
]
},
{
"cell_type": "raw",
"id": "b92a154b-99ad-4558-aeb1-635a4ad04570",
"metadata": {},
"source": [
"0,2,8,34,144,610,2584"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "9265e55e-64e6-4aff-a541-5896a032f66b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4613732"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sum . takeWhile (<= 4000000) . map head . iterate (drop 3) $ fibs"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Haskell - haskell",
"language": "haskell",
"name": "ihaskell_haskell"
},
"language_info": {
"codemirror_mode": "ihaskell",
"file_extension": ".hs",
"mimetype": "text/x-haskell",
"name": "haskell",
"pygments_lexer": "Haskell",
"version": "9.0.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@ -0,0 +1,5 @@
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.