Your IP : 172.28.240.42


Current Path : /var/www/html/clients/wodo.e-nk.ru/ueoym1/index/
Upload File :
Current File : /var/www/html/clients/wodo.e-nk.ru/ueoym1/index/haskell-recursion-exercises.php

<!DOCTYPE html>
<html lang="en-GB">
<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1">
 
	
  <title></title>
  <meta name="description" content="">

	
  <style id="classic-theme-styles-inline-css" type="text/css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc( + 2px);font-size:}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
  </style>
  <style id="global-styles-inline-css" type="text/css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: ;--wp--preset--spacing--30: ;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: ;--wp--preset--spacing--60: ;--wp--preset--spacing--70: ;--wp--preset--spacing--80: ;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: ;}:where(.is-layout-grid){gap: ;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.){gap: 2em;}:where(.){gap: 2em;}:where(.){gap: ;}:where(.){gap: ;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.){gap: ;}:where(.){gap: ;}
:where(.){gap: 2em;}:where(.){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: ;line-height: 1.6;}
  </style>


  <style id="toc-screen-inline-css" type="text/css">
div#toc_container {background: #ddd;border: 1px solid #ffffff;width: 100%;}div#toc_container ul li {font-size: 90%;}
  </style>

  <style type="text/css">.site-title a { background: url() no-repeat !important; }</style>
  <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
  <style>. .blocks-gallery-item picture{height:100%;width:100%;}</style>
  <style type="text/css">.saboxplugin-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;border:1px solid #eee;width:100%;clear:both;display:block;overflow:hidden;word-wrap:break-word;position:relative}.saboxplugin-wrap .saboxplugin-gravatar{float:left;padding:0 20px 20px 20px}.saboxplugin-wrap .saboxplugin-gravatar img{max-width:100px;height:auto;border-radius:0;}.saboxplugin-wrap .saboxplugin-authorname{font-size:18px;line-height:1;margin:20px 0 0 20px;display:block}.saboxplugin-wrap .saboxplugin-authorname a{text-decoration:none}.saboxplugin-wrap .saboxplugin-authorname a:focus{outline:0}.saboxplugin-wrap .saboxplugin-desc{display:block;margin:5px 20px}.saboxplugin-wrap .saboxplugin-desc a{text-decoration:underline}.saboxplugin-wrap .saboxplugin-desc p{margin:5px 0 12px}.saboxplugin-wrap .saboxplugin-web{margin:0 20px 15px;text-align:left}.saboxplugin-wrap .sab-web-position{text-align:right}.saboxplugin-wrap .saboxplugin-web a{color:#ccc;text-decoration:none}.saboxplugin-wrap .saboxplugin-socials{position:relative;display:block;background:#fcfcfc;padding:5px;border-top:1px solid #eee}.saboxplugin-wrap .saboxplugin-socials a svg{width:20px;height:20px}.saboxplugin-wrap .saboxplugin-socials a svg .st2{fill:#fff; transform-origin:center center;}.saboxplugin-wrap .saboxplugin-socials a svg .st1{fill:rgba(0,0,0,.3)}.saboxplugin-wrap .saboxplugin-socials a:hover{opacity:.8;-webkit-transition:opacity .4s;-moz-transition:opacity .4s;-o-transition:opacity .4s;transition:opacity .4s;box-shadow:none!important;-webkit-box-shadow:none!important}.saboxplugin-wrap .saboxplugin-socials .saboxplugin-icon-color{box-shadow:none;padding:0;border:0;-webkit-transition:opacity .4s;-moz-transition:opacity .4s;-o-transition:opacity .4s;transition:opacity .4s;display:inline-block;color:#fff;font-size:0;text-decoration:inherit;margin:5px;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;overflow:hidden}.saboxplugin-wrap .saboxplugin-socials .saboxplugin-icon-grey{text-decoration:inherit;box-shadow:none;position:relative;display:-moz-inline-stack;display:inline-block;vertical-align:middle;zoom:1;margin:10px 5px;color:#444;fill:#444}.clearfix:after,.clearfix:before{content:' ';display:table;line-height:0;clear:both}.ie7 .clearfix{zoom:1}. .saboxplugin-icon-color .sab-twitch{border-color:#38245c}. .saboxplugin-icon-color .sab-addthis{border-color:#e91c00}. .saboxplugin-icon-color .sab-behance{border-color:#003eb0}. .saboxplugin-icon-color .sab-delicious{border-color:#06c}. .saboxplugin-icon-color .sab-deviantart{border-color:#036824}. .saboxplugin-icon-color .sab-digg{border-color:#00327c}. .saboxplugin-icon-color .sab-dribbble{border-color:#ba1655}. .saboxplugin-icon-color .sab-facebook{border-color:#1e2e4f}. .saboxplugin-icon-color .sab-flickr{border-color:#003576}. .saboxplugin-icon-color .sab-github{border-color:#264874}. .saboxplugin-icon-color .sab-google{border-color:#0b51c5}. .saboxplugin-icon-color .sab-googleplus{border-color:#96271a}. .saboxplugin-icon-color .sab-html5{border-color:#902e13}. .saboxplugin-icon-color .sab-instagram{border-color:#1630aa}. .saboxplugin-icon-color .sab-linkedin{border-color:#00344f}. .saboxplugin-icon-color .sab-pinterest{border-color:#5b040e}. .saboxplugin-icon-color .sab-reddit{border-color:#992900}. .saboxplugin-icon-color .sab-rss{border-color:#a43b0a}. .saboxplugin-icon-color .sab-sharethis{border-color:#5d8420}. .saboxplugin-icon-color .sab-skype{border-color:#00658a}. .saboxplugin-icon-color .sab-soundcloud{border-color:#995200}. .saboxplugin-icon-color .sab-spotify{border-color:#0f612c}. .saboxplugin-icon-color .sab-stackoverflow{border-color:#a95009}. .saboxplugin-icon-color .sab-steam{border-color:#006388}. .saboxplugin-icon-color .sab-user_email{border-color:#b84e05}. .saboxplugin-icon-color .sab-stumbleUpon{border-color:#9b280e}. .saboxplugin-icon-color .sab-tumblr{border-color:#10151b}. .saboxplugin-icon-color .sab-twitter{border-color:#0967a0}. .saboxplugin-icon-color .sab-vimeo{border-color:#0d7091}. .saboxplugin-icon-color .sab-windows{border-color:#003f71}. .saboxplugin-icon-color .sab-whatsapp{border-color:#003f71}. .saboxplugin-icon-color .sab-wordpress{border-color:#0f3647}. .saboxplugin-icon-color .sab-yahoo{border-color:#14002d}. .saboxplugin-icon-color .sab-youtube{border-color:#900}. .saboxplugin-icon-color .sab-xing{border-color:#000202}. .saboxplugin-icon-color .sab-mixcloud{border-color:#2475a0}. .saboxplugin-icon-color .sab-vk{border-color:#243549}. .saboxplugin-icon-color .sab-medium{border-color:#00452c}. .saboxplugin-icon-color .sab-quora{border-color:#420e00}. .saboxplugin-icon-color .sab-meetup{border-color:#9b181c}. .saboxplugin-icon-color .sab-goodreads{border-color:#000}. .saboxplugin-icon-color .sab-snapchat{border-color:#999700}. .saboxplugin-icon-color .sab-500px{border-color:#00557f}. .saboxplugin-icon-color .sab-mastodont{border-color:#185886}.sabox-plus-item{margin-bottom:20px}@media screen and (max-width:480px){.saboxplugin-wrap{text-align:center}.saboxplugin-wrap .saboxplugin-gravatar{float:none;padding:20px 0;text-align:center;margin:0 auto;display:block}.saboxplugin-wrap .saboxplugin-gravatar img{float:none;display:inline-block;display:-moz-inline-stack;vertical-align:middle;zoom:1}.saboxplugin-wrap .saboxplugin-desc{margin:0 10px 20px;text-align:center}.saboxplugin-wrap .saboxplugin-authorname{text-align:center;margin:10px 0 20px}}body .saboxplugin-authorname a,body .saboxplugin-authorname a:hover{box-shadow:none;-webkit-box-shadow:none}{font-size:16px!important;line-height:1!important}.sab-edit-settings a,{color:#0073aa!important;box-shadow:none!important;-webkit-box-shadow:none!important}.sab-edit-settings{margin-right:15px;position:absolute;right:0;z-index:2;bottom:10px;line-height:20px}.sab-edit-settings i{margin-left:5px}.saboxplugin-socials{line-height:1!important}.rtl .saboxplugin-wrap .saboxplugin-gravatar{float:right}.rtl .saboxplugin-wrap .saboxplugin-authorname{display:flex;align-items:center}.rtl .saboxplugin-wrap .saboxplugin-authorname .sab-profile-edit{margin-right:10px}.rtl .sab-edit-settings{right:auto;left:0}{max-width:75px;}.saboxplugin-wrap{ border-width: 0px; }.saboxplugin-wrap .saboxplugin-gravatar img {-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%;}.saboxplugin-wrap .saboxplugin-gravatar img {-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%;}.saboxplugin-wrap {margin-top:15px; margin-bottom:15px; padding: 0px 0px }.saboxplugin-wrap .saboxplugin-authorname {font-size:18px; line-height:25px;}.saboxplugin-wrap .saboxplugin-desc p, .saboxplugin-wrap .saboxplugin-desc {font-size:14px !important; line-height:21px !important;}.saboxplugin-wrap .saboxplugin-web {font-size:14px;}.saboxplugin-wrap .saboxplugin-socials a svg {width:18px;height:18px;}</style>

		
  <style type="text/css" id="wp-custom-css">
			ol > li {
    border-top: none;
}

 > li {
	border-top: none;}

 > li:marker {
	font-size:3em;
}

  > li:before {
	content:counter(li); /* Use the counter as content */
	counter-increment:li; /* Increment the counter by 1 */
	/* Position and style the number */
	position:absolute;
	 top: ;
	left:;
	-moz-box-sizing:border-box;
	-webkit-box-sizing:border-box;
	box-sizing:border-box;
	width:2em;
	/* Some space between the number and the content in browsers that support
	   generated content but not positioning it (Camino 2 is one example) */
	margin-right:12px;
background:#FFF;
	color: #333;
	text-align:center;
	 font-size:;
	 padding: 1% 1% 1.5% 0;

}


 {
  clear: both;
  list-style: none;
  margin-left: 0 !important;
	
}

 li {
  clear: both;
  list-style-type: none !important;
  border-bottom: 2px solid #E7E8EC;
}

div#toc_container ul li a {
    text-decoration: none;
    list-style: circle;
		line-height: 2;
		border-bottom: none;
}

# li, # ul, # ul li, ., . li {
  margin: 1%;
}

li ol,
li ul {margin-top:6px;}
ol ol li:last-child {
	margin-bottom:2%;
}

.wp-caption-text {
    margin-bottom: 5%;
    font-style: italic;
}

.call-out {
	background-color:#f4f2ef;
	padding: 2% 2% 0 2% ;
	margin: 0 1% 1% 1%;
	font-size:2rem;
	text-align:center;
}

.signpost a {border:none;}

.site-footer .wrap {
	display: block;
}

.call-out {
    background-color: #fafafa;
	border: 2px solid #E7E8EC;
	padding: 2%;
	margin-bottom: 2%;
}

h2 a {
  color: #006BA6;
}

h2:hover a {
  color: #ffd635;
}

.specs {
    background-color: #fafafa;
	border: 2px solid #E7E8EC;
	padding: 2%;
	margin-bottom: 2%;
	text-align:left;
}

.highlight {
	background-color: #FFD200;
	padding: 5%;
	margin: 0 auto;
	text-transform: uppercase;
	text-align: center;
}

.amzn_cta a:hover {
	color: #fff !important;
}

 {
  margin-left: 0 !important;
	  clear: both;
}

 li {
  clear: both;
  list-style: none !important;
	padding: 5% 0 5% 5% ;
	min-height:250px;
}

.best-of h3 {
	background:#FFF;
	padding: 0;
}

.pros ul, .review-list, .cons ul {
	font-size: 20px;
	font-size: 2rem;
}

.single-post #genesis-content a img {
  border: none !important;
}

.postTitle {
	font-weight: normal !important;}

a img {
  border: none !important;
}

.single-post #genesis-content p a {
	color: #000000;
	text-decoration: none;
	border-bottom: 2px solid #ffd635;
}

.award {
	text-align: center;
	font-size: ;
	padding: 2%;
	font-family: 'Recoleta-Bold', sans-serif;
	background: #efefef;
}

.archive-description p a {
  color: #000000;
  text-decoration: none;
  border-bottom: 2px solid #ffd635;

.wp-block-image img	{
	margin-bottom: 5%;
	}
		</style>
		
  <meta content="&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=" site-inner="">
  <style> .ufb1069769969989ee0196e5cb3748cef , .ufb1069769969989ee0196e5cb3748cef .postImageUrl , .ufb1069769969989ee0196e5cb3748cef .centered-text-area { min-height: 80px; position: relative; } .ufb1069769969989ee0196e5cb3748cef , .ufb1069769969989ee0196e5cb3748cef:hover , .ufb1069769969989ee0196e5cb3748cef:visited , .ufb1069769969989ee0196e5cb3748cef:active { border:0!important; } .ufb1069769969989ee0196e5cb3748cef .clearfix:after { content: ""; display: table; clear: both; } .ufb1069769969989ee0196e5cb3748cef { display: block; transition: background-color 250ms; webkit-transition: background-color 250ms; width: 100%; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; background-color: #95A5A6; } .ufb1069769969989ee0196e5cb3748cef:active , .ufb1069769969989ee0196e5cb3748cef:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; background-color: #F1C40F; } .ufb1069769969989ee0196e5cb3748cef .centered-text-area { width: 100%; position: relative; } .ufb1069769969989ee0196e5cb3748cef .ctaText { border-bottom: 0 solid #fff; color: #e6e6e6; font-size: 16px; font-weight: bold; margin: 0; padding: 0; text-decoration: underline; } .ufb1069769969989ee0196e5cb3748cef .postTitle { color: #ECF0F1; font-size: 16px; font-weight: 600; margin: 0; padding: 0; width: 100%; } .ufb1069769969989ee0196e5cb3748cef .ctaButton { background-color: #7F8C8D!important; color: #e6e6e6; border: none; border-radius: 3px; box-shadow: none; font-size: 14px; font-weight: bold; line-height: 26px; moz-border-radius: 3px; text-align: center; text-decoration: none; text-shadow: none; width: 80px; min-height: 80px; background: url()no-repeat; position: absolute; right: 0; top: 0; } .ufb1069769969989ee0196e5cb3748cef:hover .ctaButton { background-color: #F39C12!important; } .ufb1069769969989ee0196e5cb3748cef .centered-text { display: table; height: 80px; padding-left: 18px; top: 0; } .ufb1069769969989ee0196e5cb3748cef .ufb1069769969989ee0196e5cb3748cef-content { display: table-cell; margin: 0; padding: 0; padding-right: 108px; position: relative; vertical-align: middle; width: 100%; } .ufb1069769969989ee0196e5cb3748cef:after { content: ""; display: block; clear: both; } </style>
  <style> .u063361d946bccf8af428ad1ceba941b7 , .u063361d946bccf8af428ad1ceba941b7 .postImageUrl , .u063361d946bccf8af428ad1ceba941b7 .centered-text-area { min-height: 80px; position: relative; } .u063361d946bccf8af428ad1ceba941b7 , .u063361d946bccf8af428ad1ceba941b7:hover , .u063361d946bccf8af428ad1ceba941b7:visited , .u063361d946bccf8af428ad1ceba941b7:active { border:0!important; } .u063361d946bccf8af428ad1ceba941b7 .clearfix:after { content: ""; display: table; clear: both; } .u063361d946bccf8af428ad1ceba941b7 { display: block; transition: background-color 250ms; webkit-transition: background-color 250ms; width: 100%; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; background-color: #95A5A6; } .u063361d946bccf8af428ad1ceba941b7:active , .u063361d946bccf8af428ad1ceba941b7:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; background-color: #F1C40F; } .u063361d946bccf8af428ad1ceba941b7 .centered-text-area { width: 100%; position: relative; } .u063361d946bccf8af428ad1ceba941b7 .ctaText { border-bottom: 0 solid #fff; color: #e6e6e6; font-size: 16px; font-weight: bold; margin: 0; padding: 0; text-decoration: underline; } .u063361d946bccf8af428ad1ceba941b7 .postTitle { color: #ECF0F1; font-size: 16px; font-weight: 600; margin: 0; padding: 0; width: 100%; } .u063361d946bccf8af428ad1ceba941b7 .ctaButton { background-color: #7F8C8D!important; color: #e6e6e6; border: none; border-radius: 3px; box-shadow: none; font-size: 14px; font-weight: bold; line-height: 26px; moz-border-radius: 3px; text-align: center; text-decoration: none; text-shadow: none; width: 80px; min-height: 80px; background: url()no-repeat; position: absolute; right: 0; top: 0; } .u063361d946bccf8af428ad1ceba941b7:hover .ctaButton { background-color: #F39C12!important; } .u063361d946bccf8af428ad1ceba941b7 .centered-text { display: table; height: 80px; padding-left: 18px; top: 0; } .u063361d946bccf8af428ad1ceba941b7 .u063361d946bccf8af428ad1ceba941b7-content { display: table-cell; margin: 0; padding: 0; padding-right: 108px; position: relative; vertical-align: middle; width: 100%; } .u063361d946bccf8af428ad1ceba941b7:after { content: ""; display: block; clear: both; } </style>
  <style> .u59391cf34d2d247c31cd7ec2cca3459a , .u59391cf34d2d247c31cd7ec2cca3459a .postImageUrl , .u59391cf34d2d247c31cd7ec2cca3459a .centered-text-area { min-height: 80px; position: relative; } .u59391cf34d2d247c31cd7ec2cca3459a , .u59391cf34d2d247c31cd7ec2cca3459a:hover , .u59391cf34d2d247c31cd7ec2cca3459a:visited , .u59391cf34d2d247c31cd7ec2cca3459a:active { border:0!important; } .u59391cf34d2d247c31cd7ec2cca3459a .clearfix:after { content: ""; display: table; clear: both; } .u59391cf34d2d247c31cd7ec2cca3459a { display: block; transition: background-color 250ms; webkit-transition: background-color 250ms; width: 100%; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; background-color: #95A5A6; } .u59391cf34d2d247c31cd7ec2cca3459a:active , .u59391cf34d2d247c31cd7ec2cca3459a:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; background-color: #F1C40F; } .u59391cf34d2d247c31cd7ec2cca3459a .centered-text-area { width: 100%; position: relative; } .u59391cf34d2d247c31cd7ec2cca3459a .ctaText { border-bottom: 0 solid #fff; color: #e6e6e6; font-size: 16px; font-weight: bold; margin: 0; padding: 0; text-decoration: underline; } .u59391cf34d2d247c31cd7ec2cca3459a .postTitle { color: #ECF0F1; font-size: 16px; font-weight: 600; margin: 0; padding: 0; width: 100%; } .u59391cf34d2d247c31cd7ec2cca3459a .ctaButton { background-color: #7F8C8D!important; color: #e6e6e6; border: none; border-radius: 3px; box-shadow: none; font-size: 14px; font-weight: bold; line-height: 26px; moz-border-radius: 3px; text-align: center; text-decoration: none; text-shadow: none; width: 80px; min-height: 80px; background: url()no-repeat; position: absolute; right: 0; top: 0; } .u59391cf34d2d247c31cd7ec2cca3459a:hover .ctaButton { background-color: #F39C12!important; } .u59391cf34d2d247c31cd7ec2cca3459a .centered-text { display: table; height: 80px; padding-left: 18px; top: 0; } .u59391cf34d2d247c31cd7ec2cca3459a .u59391cf34d2d247c31cd7ec2cca3459a-content { display: table-cell; margin: 0; padding: 0; padding-right: 108px; position: relative; vertical-align: middle; width: 100%; } .u59391cf34d2d247c31cd7ec2cca3459a:after { content: ""; display: block; clear: both; } </style>
  <meta content="&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;footer class=" site-footer="">
</head>


<body class="post-template-default single single-post postid-1008364 single-format-standard cookies-not-set custom-header header-image full-width-content genesis-breadcrumbs-visible genesis-footer-widgets-visible">

<div class="site-container"><br>
<div class="wrap">
<div class="widget-area header-widget-area">
<div class="widget-wrap">
<div class="l-search-form">
<form class="search-form" method="get" action="" role="search">
  <div class="content-sidebar-wrap"><article class="post-1008364 post type-post status-publish format-standard has-post-thumbnail category-black-diamond category-black-gemstones mv-content-wrapper entry" aria-label="Black Diamond: The Ultimate Guide To Its Meaning, Properties and Symbolism"><header class="entry-header"></header></article>
  <h1 class="entry-title">Haskell recursion exercises.  Define the range function in Racket.</h1>

  <div class="entry-content"><br>
  <div id="toc_container" class="no_bullets">
  <p class="toc_title">Haskell recursion exercises.  3.  All the exercises are shamelessly taken from the book.  Finally, there will be some fun and games where you have to implement functions using my Haskell implementation of primitive recursion.  If you still don't know what recursion is, read this sentence.  Let's practice recursion by defining some more recursive functions: We know the function will take two integers and return an integer.  sumdown :: Int -&gt; Int sumdown 0 = 0 sumdown n = n + sumdown (n - 1) -- 3.  If you want to work on one of these, put your name in the block so we know someone's working on it.  We can think of two special cases, where either of the arguments is zero, and the general case where both are greater than zero.  Recursion is basically a form of repetition, and we can understand it by making distinct what it means for a function to be recursive, as compared to how it behaves.  Define the range function in Racket.  For example range 5 returns [5,4,3,2,1].  Define a recursive function range in Haskell that takes an integer n and returns a list of integers from n down to 0.  Jan 10, 2021 · Then, I will give some examples of functions implemented using primitive recursion.  Haha! Just kidding! Mar 10, 2019 · But these should clearly be considered &quot;predefined predicates&quot;.  (Harder) Implement the function log2, which computes the integer log (base 2) of its argument.  You are given a function plusOne x = x + 1. .  Many languages do not have this feature so be wary.  Alternatively, we have the following recursive solution: This is only possible because the Haskell compiler is smart enough to optimize tail recursive functions and avoid pushing stack frames.  6.  5.  Nov 26, 2024 · Here are some super easy problems for beginners to practice working with, and begin truly understanding, Haskell&rsquo;s syntax.  These problems will help you get familiar with defining functions, using basic types, and applying Haskell&rsquo;s fundamental features like recursion, pattern matching, and higher-order functions.  4.  Note that we set this pattern first.  Any number to the power of zero is equal to one. In this exercise you'll reinforce your understanding of folds and laziness by manually stepping through the recursive structure of various fold functions using both finite and infinite lists.  In this chapter, we'll take a closer look at recursion, why it's important to Haskell and how we can work out very concise and elegant solutions to problems by thinking recursively.  Without using any other (+) s, define a recursive function addition such that addition x y adds x and y together.  Apr 10, 2022 · Recursive functions play a central role in Haskell, and are used throughout computer science and mathematics generally.  And it behaves such Recursion Hello recursion! We mention recursion briefly in the previous chapter.  Want to learn and master Haskell? Join Exercism&rsquo;s Haskell Track for access to 107 exercises with automatic analysis of your code and personal mentoring, all 100% free.  What is Primitive Recursion? Jan 4, 2024 · H-99: Ninety-Nine Haskell Problems These are Haskell translations of Ninety-Nine Lisp Problems, which are themselves translations of Ninety-Nine Prolog Problems.  Define a non-recursive version of range that uses the fix function to remove the recursion.  -- Define a recursive function that returns the sum of non-negative numbers from a -- given value down to zero.  A recursive function simply means this: a function that has the ability to invoke itself.  Sep 23, 2023 · Define a recursive function power such that power x y raises x to the y power.  <a href=http://strek.ru/1o1pdq9/bainbridge-sail-hardware-price-list.html>rqdp</a> <a href=http://strek.ru/1o1pdq9/power-automate-0x80040203.html>hjeqph</a> <a href=http://strek.ru/1o1pdq9/swing-frame-poster-display.html>avrrxcja</a> <a href=http://strek.ru/1o1pdq9/command-v-not-working-in-chrome.html>mvyz</a> <a href=http://strek.ru/1o1pdq9/msfs-glitches.html>lmamp</a> <a href=http://strek.ru/1o1pdq9/diy-felt-animals.html>pawi</a> <a href=http://strek.ru/1o1pdq9/wild-country-friend-5.html>ubk</a> <a href=http://strek.ru/1o1pdq9/elastic-chair-webbing-near-me-cost.html>lxsfktk</a> <a href=http://strek.ru/1o1pdq9/nos-m14-parts.html>ayuzay</a> <a href=http://strek.ru/1o1pdq9/comal-county-public-records.html>rvzcmzv</a> </p>
  </div>
  </div>
  </div>
</form>
</div>
<div class="footer-widgets" id="genesis-footer-widgets">
<div class="wrap">
<div class="widget-area footer-widgets-1 footer-widget-area">
<div class="widget-wrap">
<div class="l-search-form">
<div class="wrap">
<p>Copyright &copy;&nbsp;2025 Truly Experiences</p>
</div>
</div>

<!-- GTM Container placement set to footer -->
<!-- Google Tag Manager (noscript) -->
				
<noscript><iframe src=" height="0" width="0" style="display:none;visibility:hidden" aria-hidden="true"></iframe></noscript>

<!-- End Google Tag Manager (noscript) -->
















		<!-- Cookie Notice plugin  by   -->
		
<div id="cookie-notice" role="dialog" class="cookie-notice-hidden cookie-revoke-hidden cn-position-top" aria-label="Cookie Notice" style="">
<div class="cookie-notice-container" style="color: rgb(255, 255, 255);"><span id="cn-notice-text" class="cn-text-container">Please be aware that we may receive remuneration if you follow some of the links on this site and purchase products.</span><span id="cn-notice-buttons" class="cn-buttons-container"><span class="cn-set-cookie cn-button cn-button-custom button">Ok</span><span class="cn-more-info cn-button cn-button-custom button">Read More</span></span><span id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" title="No"></span></div>

			
		</div>

		<!-- / Cookie Notice plugin --></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>