CINXE.COM
Programação funcional – Wikipédia, a enciclopédia livre
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="pt" dir="ltr"> <head> <meta charset="UTF-8"> <title>Programação funcional – Wikipédia, a enciclopédia livre</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )ptwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"wgRequestId":"9a49753e-a0e3-4028-a70b-1cfc354a9d15","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Programação_funcional","wgTitle":"Programação funcional","wgCurRevisionId":66709469,"wgRevisionId":66709469,"wgArticleId":1464,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["!CS1 inglês-fontes em língua (en)","!Artigos que carecem de notas de rodapé desde maio de 2015","!Artigos que carecem de notas de rodapé sem indicação de tema","Programação funcional","Ciência da computação"],"wgPageViewLanguage":"pt","wgPageContentLanguage":"pt","wgPageContentModel":"wikitext","wgRelevantPageName":"Programação_funcional","wgRelevantArticleId":1464,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable" :true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"pt","pageLanguageDir":"ltr","pageVariantFallbacks":"pt"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":10000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q193076","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":true,"wgGEStructuredTaskRejectionReasonTextInputEnabled": false,"wgGELevelingUpEnabledForUser":false,"wgSiteNoticeId":"2.30"};RLSTATE={"ext.gadget.FeedbackHighlight-base":"ready","ext.gadget.keepPDU":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.math.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready","ext.dismissableSiteNotice.styles":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","mediawiki.page.media","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.Topicon","ext.gadget.Metacaixa","ext.gadget.TitleRewrite", "ext.gadget.ElementosOcultaveis","ext.gadget.FeedbackHighlight","ext.gadget.ReferenceTooltips","ext.gadget.NewVillagePump","ext.gadget.wikibugs","ext.gadget.charinsert","ext.gadget.requestForAdminship","ext.gadget.WikiMiniAtlas","ext.gadget.PagesForDeletion","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","oojs-ui.styles.icons-media","oojs-ui-core.icons","wikibase.sidebar.tracking","ext.dismissableSiteNotice"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=pt&modules=ext.cite.styles%7Cext.dismissableSiteNotice.styles%7Cext.math.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=pt&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=pt&modules=ext.gadget.FeedbackHighlight-base%2CkeepPDU&only=styles&skin=vector-2022"> <link rel="stylesheet" href="/w/load.php?lang=pt&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Programação funcional – Wikipédia, a enciclopédia livre"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//pt.m.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_funcional"> <link rel="alternate" type="application/x-wiki" title="Editar" href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipédia (pt)"> <link rel="EditURI" type="application/rsd+xml" href="//pt.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_funcional"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.pt"> <link rel="alternate" type="application/atom+xml" title="''Feed'' Atom Wikipédia" href="/w/index.php?title=Especial:Mudan%C3%A7as_recentes&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Programação_funcional rootpage-Programação_funcional skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Saltar para o conteúdo</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="''Site''"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Menu principal" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Menu principal</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Menu principal</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">mover para a barra lateral</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">ocultar</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navegação </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:P%C3%A1gina_principal" title="Visitar a página principal [z]" accesskey="z"><span>Página principal</span></a></li><li id="n-featuredcontent" class="mw-list-item"><a href="/wiki/Portal:Conte%C3%BAdo_destacado"><span>Conteúdo destacado</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Eventos_atuais" title="Informação temática sobre eventos atuais"><span>Eventos atuais</span></a></li><li id="n-villagepump" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Esplanada"><span>Esplanada</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Especial:Aleat%C3%B3ria" title="Carregar página aleatória [x]" accesskey="x"><span>Página aleatória</span></a></li><li id="n-portals" class="mw-list-item"><a href="/wiki/Portal:%C3%8Dndice"><span>Portais</span></a></li><li id="n-bug_in_article" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Informe_um_erro"><span>Informar um erro</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Colaboração </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-welcome" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Boas-vindas"><span>Boas-vindas</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Ajuda:P%C3%A1gina_principal" title="Um local reservado para auxílio."><span>Ajuda</span></a></li><li id="n-Páginas-de-testes-públicas" class="mw-list-item"><a href="/wiki/Ajuda:P%C3%A1gina_de_testes"><span>Páginas de testes públicas</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Portal_comunit%C3%A1rio" title="Sobre o projeto"><span>Portal comunitário</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Especial:Mudan%C3%A7as_recentes" title="Uma lista de mudanças recentes nesta wiki [r]" accesskey="r"><span>Mudanças recentes</span></a></li><li id="n-maintenance" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Manuten%C3%A7%C3%A3o"><span>Manutenção</span></a></li><li id="n-createpage" class="mw-list-item"><a href="/wiki/Ajuda:Guia_de_edi%C3%A7%C3%A3o/Como_come%C3%A7ar_uma_p%C3%A1gina"><span>Criar página</span></a></li><li id="n-newpages-description" class="mw-list-item"><a href="/wiki/Especial:P%C3%A1ginas_novas"><span>Páginas novas</span></a></li><li id="n-contact-description" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Contato"><span>Contato</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Wikip%C3%A9dia:P%C3%A1gina_principal" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipédia" src="/static/images/mobile/copyright/wikipedia-wordmark-fr.svg" style="width: 7.4375em; height: 1.125em;"> <img class="mw-logo-tagline" alt="" src="/static/images/mobile/copyright/wikipedia-tagline-pt.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Especial:Pesquisar" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Pesquisar na Wikipédia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Busca</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Pesquisar na Wikipédia" aria-label="Pesquisar na Wikipédia" autocapitalize="sentences" title="Pesquisar na Wikipédia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Especial:Pesquisar"> </div> <button class="cdx-button cdx-search-input__end-button">Pesquisar</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Ferramentas pessoais"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Aspeto"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Aspeto" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Aspeto</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=20120521SB001&uselang=pt" class=""><span>Donativos</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Especial:Criar_conta&returnto=Programa%C3%A7%C3%A3o+funcional" title="É encorajado a criar uma conta e iniciar sessão; no entanto, não é obrigatório" class=""><span>Criar uma conta</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Especial:Entrar&returnto=Programa%C3%A7%C3%A3o+funcional" title="Aconselhamos-lhe a criar uma conta na Wikipédia, embora tal não seja obrigatório. [o]" accesskey="o" class=""><span>Entrar</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Mais opções" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Ferramentas pessoais" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Ferramentas pessoais</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Menu do utilizador" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=20120521SB001&uselang=pt"><span>Donativos</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Especial:Criar_conta&returnto=Programa%C3%A7%C3%A3o+funcional" title="É encorajado a criar uma conta e iniciar sessão; no entanto, não é obrigatório"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Criar uma conta</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Especial:Entrar&returnto=Programa%C3%A7%C3%A3o+funcional" title="Aconselhamos-lhe a criar uma conta na Wikipédia, embora tal não seja obrigatório. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Entrar</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Páginas para editores sem sessão iniciada <a href="/wiki/Ajuda:Introduction" aria-label="Saiba mais sobre edição"><span>saber mais</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Especial:Minhas_contribui%C3%A7%C3%B5es" title="Uma lista de edições feitas a partir deste endereço IP [y]" accesskey="y"><span>Contribuições</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Especial:Minha_discuss%C3%A3o" title="Discussão sobre edições feitas a partir deste endereço IP [n]" accesskey="n"><span>Discussão</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><div id="mw-dismissablenotice-anonplace"></div><script>(function(){var node=document.getElementById("mw-dismissablenotice-anonplace");if(node){node.outerHTML="\u003Cdiv class=\"mw-dismissable-notice\"\u003E\u003Cdiv class=\"mw-dismissable-notice-close\"\u003E[\u003Ca tabindex=\"0\" role=\"button\"\u003Eocultar\u003C/a\u003E]\u003C/div\u003E\u003Cdiv class=\"mw-dismissable-notice-body\"\u003E\u003C!-- CentralNotice --\u003E\u003Cdiv id=\"localNotice\" data-nosnippet=\"\"\u003E\u003Cdiv class=\"anonnotice\" lang=\"pt\" dir=\"ltr\"\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E";}}());</script></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="''Site''"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Conteúdo" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Conteúdo</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">mover para a barra lateral</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">ocultar</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Início</div> </a> </li> <li id="toc-Desenvolvimento" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Desenvolvimento"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Desenvolvimento</span> </div> </a> <ul id="toc-Desenvolvimento-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Vantagens" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Vantagens"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Vantagens</span> </div> </a> <ul id="toc-Vantagens-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Desvantagens" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Desvantagens"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Desvantagens</span> </div> </a> <ul id="toc-Desvantagens-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Linguagens_de_programação" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Linguagens_de_programação"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Linguagens de programação</span> </div> </a> <ul id="toc-Linguagens_de_programação-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Exemplos" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Exemplos"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Exemplos</span> </div> </a> <button aria-controls="toc-Exemplos-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Alternar a subsecção Exemplos</span> </button> <ul id="toc-Exemplos-sublist" class="vector-toc-list"> <li id="toc-Scheme" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Scheme"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Scheme</span> </div> </a> <ul id="toc-Scheme-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Haskell" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Haskell"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Haskell</span> </div> </a> <ul id="toc-Haskell-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Contraste_com_a_programação_imperativa" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Contraste_com_a_programação_imperativa"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Contraste com a programação imperativa</span> </div> </a> <ul id="toc-Contraste_com_a_programação_imperativa-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Ver_também" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Ver_também"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Ver também</span> </div> </a> <ul id="toc-Ver_também-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Bibliografia" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Bibliografia"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Bibliografia</span> </div> </a> <ul id="toc-Bibliografia-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Referências" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Referências"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>Referências</span> </div> </a> <ul id="toc-Referências-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Conteúdo" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Alternar o índice" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Alternar o índice</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Programação funcional</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Ir para um artigo noutra língua. Disponível em 53 línguas" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-53" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">53 línguas</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%A8%D8%B1%D9%85%D8%AC%D8%A9_%D9%88%D8%B8%D9%8A%D9%81%D9%8A%D8%A9" title="برمجة وظيفية — árabe" lang="ar" hreflang="ar" data-title="برمجة وظيفية" data-language-autonym="العربية" data-language-local-name="árabe" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Programaci%C3%B3n_funcional" title="Programación funcional — asturiano" lang="ast" hreflang="ast" data-title="Programación funcional" data-language-autonym="Asturianu" data-language-local-name="asturiano" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D1%8B%D1%8F%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D0%B5_%D0%BF%D1%80%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D0%B2%D0%B0%D0%BD%D0%BD%D0%B5" title="Функцыянальнае праграмаванне — bielorrusso" lang="be" hreflang="be" data-title="Функцыянальнае праграмаванне" data-language-autonym="Беларуская" data-language-local-name="bielorrusso" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%BD%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5" title="Функционално програмиране — búlgaro" lang="bg" hreflang="bg" data-title="Функционално програмиране" data-language-autonym="Български" data-language-local-name="búlgaro" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%AB%E0%A6%BE%E0%A6%82%E0%A6%B6%E0%A6%A8%E0%A6%AD%E0%A6%BF%E0%A6%A4%E0%A7%8D%E0%A6%A4%E0%A6%BF%E0%A6%95_%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82" title="ফাংশনভিত্তিক প্রোগ্রামিং — bengalês" lang="bn" hreflang="bn" data-title="ফাংশনভিত্তিক প্রোগ্রামিং" data-language-autonym="বাংলা" data-language-local-name="bengalês" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Programaci%C3%B3_funcional" title="Programació funcional — catalão" lang="ca" hreflang="ca" data-title="Programació funcional" data-language-autonym="Català" data-language-local-name="catalão" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Funkcion%C3%A1ln%C3%AD_programov%C3%A1n%C3%AD" title="Funkcionální programování — checo" lang="cs" hreflang="cs" data-title="Funkcionální programování" data-language-autonym="Čeština" data-language-local-name="checo" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Funktionsprogrammering" title="Funktionsprogrammering — dinamarquês" lang="da" hreflang="da" data-title="Funktionsprogrammering" data-language-autonym="Dansk" data-language-local-name="dinamarquês" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Funktionale_Programmierung" title="Funktionale Programmierung — alemão" lang="de" hreflang="de" data-title="Funktionale Programmierung" data-language-autonym="Deutsch" data-language-local-name="alemão" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-diq mw-list-item"><a href="https://diq.wikipedia.org/wiki/Programnay%C4%B1%C5%9Fo_fonksiyonal" title="Programnayışo fonksiyonal — Zazaki" lang="diq" hreflang="diq" data-title="Programnayışo fonksiyonal" data-language-autonym="Zazaki" data-language-local-name="Zazaki" class="interlanguage-link-target"><span>Zazaki</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/%CE%A3%CF%85%CE%BD%CE%B1%CF%81%CF%84%CE%B7%CF%83%CE%B9%CE%B1%CE%BA%CF%8C%CF%82_%CF%80%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CE%BC%CF%8C%CF%82" title="Συναρτησιακός προγραμματισμός — grego" lang="el" hreflang="el" data-title="Συναρτησιακός προγραμματισμός" data-language-autonym="Ελληνικά" data-language-local-name="grego" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Functional_programming" title="Functional programming — inglês" lang="en" hreflang="en" data-title="Functional programming" data-language-autonym="English" data-language-local-name="inglês" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional" title="Programación funcional — espanhol" lang="es" hreflang="es" data-title="Programación funcional" data-language-autonym="Español" data-language-local-name="espanhol" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Funktsionaalne_programmeerimine" title="Funktsionaalne programmeerimine — estónio" lang="et" hreflang="et" data-title="Funktsionaalne programmeerimine" data-language-autonym="Eesti" data-language-local-name="estónio" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Programazio_funtzional" title="Programazio funtzional — basco" lang="eu" hreflang="eu" data-title="Programazio funtzional" data-language-autonym="Euskara" data-language-local-name="basco" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C_%D8%AA%D8%A7%D8%A8%D8%B9%DB%8C" title="برنامهنویسی تابعی — persa" lang="fa" hreflang="fa" data-title="برنامهنویسی تابعی" data-language-autonym="فارسی" data-language-local-name="persa" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Funktionaalinen_ohjelmointi" title="Funktionaalinen ohjelmointi — finlandês" lang="fi" hreflang="fi" data-title="Funktionaalinen ohjelmointi" data-language-autonym="Suomi" data-language-local-name="finlandês" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Programmation_fonctionnelle" title="Programmation fonctionnelle — francês" lang="fr" hreflang="fr" data-title="Programmation fonctionnelle" data-language-autonym="Français" data-language-local-name="francês" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/R%C3%ADomhchl%C3%A1r%C3%BA_feidhmi%C3%BAil" title="Ríomhchlárú feidhmiúil — irlandês" lang="ga" hreflang="ga" data-title="Ríomhchlárú feidhmiúil" data-language-autonym="Gaeilge" data-language-local-name="irlandês" class="interlanguage-link-target"><span>Gaeilge</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Programaci%C3%B3n_funcional" title="Programación funcional — galego" lang="gl" hreflang="gl" data-title="Programación funcional" data-language-autonym="Galego" data-language-local-name="galego" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%AA%D7%9B%D7%A0%D7%95%D7%AA_%D7%A4%D7%95%D7%A0%D7%A7%D7%A6%D7%99%D7%95%D7%A0%D7%9C%D7%99" title="תכנות פונקציונלי — hebraico" lang="he" hreflang="he" data-title="תכנות פונקציונלי" data-language-autonym="עברית" data-language-local-name="hebraico" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Funkcijsko_programiranje" title="Funkcijsko programiranje — croata" lang="hr" hreflang="hr" data-title="Funkcijsko programiranje" data-language-autonym="Hrvatski" data-language-local-name="croata" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Funkcion%C3%A1lis_programoz%C3%A1s" title="Funkcionális programozás — húngaro" lang="hu" hreflang="hu" data-title="Funkcionális programozás" data-language-autonym="Magyar" data-language-local-name="húngaro" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D5%96%D5%B8%D6%82%D5%B6%D5%AF%D6%81%D5%AB%D5%B8%D5%B6%D5%A1%D5%AC_%D5%AE%D6%80%D5%A1%D5%A3%D6%80%D5%A1%D5%BE%D5%B8%D6%80%D5%B8%D6%82%D5%B4" title="Ֆունկցիոնալ ծրագրավորում — arménio" lang="hy" hreflang="hy" data-title="Ֆունկցիոնալ ծրագրավորում" data-language-autonym="Հայերեն" data-language-local-name="arménio" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Pemrograman_fungsional" title="Pemrograman fungsional — indonésio" lang="id" hreflang="id" data-title="Pemrograman fungsional" data-language-autonym="Bahasa Indonesia" data-language-local-name="indonésio" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Programmazione_funzionale" title="Programmazione funzionale — italiano" lang="it" hreflang="it" data-title="Programmazione funzionale" data-language-autonym="Italiano" data-language-local-name="italiano" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0" title="関数型プログラミング — japonês" lang="ja" hreflang="ja" data-title="関数型プログラミング" data-language-autonym="日本語" data-language-local-name="japonês" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98%ED%98%95_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D" title="함수형 프로그래밍 — coreano" lang="ko" hreflang="ko" data-title="함수형 프로그래밍" data-language-autonym="한국어" data-language-local-name="coreano" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-la mw-list-item"><a href="https://la.wikipedia.org/wiki/Programmatura_functionalis" title="Programmatura functionalis — latim" lang="la" hreflang="la" data-title="Programmatura functionalis" data-language-autonym="Latina" data-language-local-name="latim" class="interlanguage-link-target"><span>Latina</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Funkcinis_programavimas" title="Funkcinis programavimas — lituano" lang="lt" hreflang="lt" data-title="Funkcinis programavimas" data-language-autonym="Lietuvių" data-language-local-name="lituano" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%AB%E0%B4%99%E0%B5%8D%E0%B4%B7%E0%B4%A3%E0%B5%BD_%E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%97%E0%B5%8D%E0%B4%B0%E0%B4%BE%E0%B4%AE%E0%B4%BF%E0%B4%82%E0%B4%97%E0%B5%8D" title="ഫങ്ഷണൽ പ്രോഗ്രാമിംഗ് — malaiala" lang="ml" hreflang="ml" data-title="ഫങ്ഷണൽ പ്രോഗ്രാമിംഗ്" data-language-autonym="മലയാളം" data-language-local-name="malaiala" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Pengaturcaraan_kefungsian" title="Pengaturcaraan kefungsian — malaio" lang="ms" hreflang="ms" data-title="Pengaturcaraan kefungsian" data-language-autonym="Bahasa Melayu" data-language-local-name="malaio" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-mwl mw-list-item"><a href="https://mwl.wikipedia.org/wiki/Porgrama%C3%A7on_funcional" title="Porgramaçon funcional — mirandês" lang="mwl" hreflang="mwl" data-title="Porgramaçon funcional" data-language-autonym="Mirandés" data-language-local-name="mirandês" class="interlanguage-link-target"><span>Mirandés</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Functioneel_programmeren" title="Functioneel programmeren — neerlandês" lang="nl" hreflang="nl" data-title="Functioneel programmeren" data-language-autonym="Nederlands" data-language-local-name="neerlandês" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Funksjonell_programmering" title="Funksjonell programmering — norueguês bokmål" lang="nb" hreflang="nb" data-title="Funksjonell programmering" data-language-autonym="Norsk bokmål" data-language-local-name="norueguês bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Programowanie_funkcyjne" title="Programowanie funkcyjne — polaco" lang="pl" hreflang="pl" data-title="Programowanie funkcyjne" data-language-autonym="Polski" data-language-local-name="polaco" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Programare_func%C8%9Bional%C4%83" title="Programare funcțională — romeno" lang="ro" hreflang="ro" data-title="Programare funcțională" data-language-autonym="Română" data-language-local-name="romeno" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" title="Функциональное программирование — russo" lang="ru" hreflang="ru" data-title="Функциональное программирование" data-language-autonym="Русский" data-language-local-name="russo" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-rue mw-list-item"><a href="https://rue.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D1%96%D0%BE%D0%BD%D0%B0%D0%BB%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D2%91%D1%80%D0%B0%D0%BC%D0%BE%D0%B2%D0%B0%D0%BD%D1%8F" title="Функціоналне проґрамованя — Rusyn" lang="rue" hreflang="rue" data-title="Функціоналне проґрамованя" data-language-autonym="Русиньскый" data-language-local-name="Rusyn" class="interlanguage-link-target"><span>Русиньскый</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Funkcijsko_programiranje" title="Funkcijsko programiranje — servo-croata" lang="sh" hreflang="sh" data-title="Funkcijsko programiranje" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="servo-croata" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Functional_programming" title="Functional programming — Simple English" lang="en-simple" hreflang="en-simple" data-title="Functional programming" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Funkcion%C3%A1lne_programovanie" title="Funkcionálne programovanie — eslovaco" lang="sk" hreflang="sk" data-title="Funkcionálne programovanie" data-language-autonym="Slovenčina" data-language-local-name="eslovaco" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Programimi_funksional" title="Programimi funksional — albanês" lang="sq" hreflang="sq" data-title="Programimi funksional" data-language-autonym="Shqip" data-language-local-name="albanês" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%BD%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5" title="Функционално програмирање — sérvio" lang="sr" hreflang="sr" data-title="Функционално програмирање" data-language-autonym="Српски / srpski" data-language-local-name="sérvio" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Funktionell_programmering" title="Funktionell programmering — sueco" lang="sv" hreflang="sv" data-title="Funktionell programmering" data-language-autonym="Svenska" data-language-local-name="sueco" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-sw mw-list-item"><a href="https://sw.wikipedia.org/wiki/Uprogramishaji_kikadhia" title="Uprogramishaji kikadhia — suaíli" lang="sw" hreflang="sw" data-title="Uprogramishaji kikadhia" data-language-autonym="Kiswahili" data-language-local-name="suaíli" class="interlanguage-link-target"><span>Kiswahili</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AE%A3%E0%AE%BF%E0%AE%AE%E0%AF%81%E0%AE%B1%E0%AF%88_%E0%AE%A8%E0%AE%BF%E0%AE%B0%E0%AE%B2%E0%AF%8D_%E0%AE%AE%E0%AF%8A%E0%AE%B4%E0%AE%BF" title="பணிமுறை நிரல் மொழி — tâmil" lang="ta" hreflang="ta" data-title="பணிமுறை நிரல் மொழி" data-language-autonym="தமிழ்" data-language-local-name="tâmil" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B9%80%E0%B8%8A%E0%B8%B4%E0%B8%87%E0%B8%9F%E0%B8%B1%E0%B8%87%E0%B8%81%E0%B9%8C%E0%B8%8A%E0%B8%B1%E0%B8%99" title="การเขียนโปรแกรมเชิงฟังก์ชัน — tailandês" lang="th" hreflang="th" data-title="การเขียนโปรแกรมเชิงฟังก์ชัน" data-language-autonym="ไทย" data-language-local-name="tailandês" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Fonksiyonel_programlama" title="Fonksiyonel programlama — turco" lang="tr" hreflang="tr" data-title="Fonksiyonel programlama" data-language-autonym="Türkçe" data-language-local-name="turco" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D1%96%D0%B9%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F" title="Функційне програмування — ucraniano" lang="uk" hreflang="uk" data-title="Функційне програмування" data-language-autonym="Українська" data-language-local-name="ucraniano" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/L%E1%BA%ADp_tr%C3%ACnh_h%C3%A0m" title="Lập trình hàm — vietnamita" lang="vi" hreflang="vi" data-title="Lập trình hàm" data-language-autonym="Tiếng Việt" data-language-local-name="vietnamita" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B" title="函数式编程 — chinês" lang="zh" hreflang="zh" data-title="函数式编程" data-language-autonym="中文" data-language-local-name="chinês" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E5%87%BD%E6%95%B8%E5%BC%8F%E7%B7%A8%E7%A8%8B" title="函數式編程 — cantonês" lang="yue" hreflang="yue" data-title="函數式編程" data-language-autonym="粵語" data-language-local-name="cantonês" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q193076#sitelinks-wikipedia" title="Editar hiperligações interlínguas" class="wbc-editpage">Editar hiperligações</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Espaços nominais"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Programa%C3%A7%C3%A3o_funcional" title="Ver a página de conteúdo [c]" accesskey="c"><span>Artigo</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Discuss%C3%A3o:Programa%C3%A7%C3%A3o_funcional" rel="discussion" title="Discussão sobre o conteúdo da página [t]" accesskey="t"><span>Discussão</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Mudar a variante da língua" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">português</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Vistas"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Programa%C3%A7%C3%A3o_funcional"><span>Ler</span></a></li><li id="ca-ve-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit" title="Editar esta página [v]" accesskey="v"><span>Editar</span></a></li><li id="ca-edit" class="collapsible vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit" title="Editar o código-fonte desta página [e]" accesskey="e"><span>Editar código-fonte</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=history" title="Edições anteriores desta página. [h]" accesskey="h"><span>Ver histórico</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Ferramentas de página"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Ferramentas" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Ferramentas</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Ferramentas</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">mover para a barra lateral</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">ocultar</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Mais opções" > <div class="vector-menu-heading"> Operações </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Programa%C3%A7%C3%A3o_funcional"><span>Ler</span></a></li><li id="ca-more-ve-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit" title="Editar esta página [v]" accesskey="v"><span>Editar</span></a></li><li id="ca-more-edit" class="collapsible vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit" title="Editar o código-fonte desta página [e]" accesskey="e"><span>Editar código-fonte</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=history"><span>Ver histórico</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Geral </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Especial:P%C3%A1ginas_afluentes/Programa%C3%A7%C3%A3o_funcional" title="Lista de todas as páginas que contêm hiperligações para esta [j]" accesskey="j"><span>Páginas afluentes</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Especial:Altera%C3%A7%C3%B5es_relacionadas/Programa%C3%A7%C3%A3o_funcional" rel="nofollow" title="Mudanças recentes nas páginas para as quais esta contém hiperligações [k]" accesskey="k"><span>Alterações relacionadas</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:Carregar_ficheiro" title="Carregar ficheiros [u]" accesskey="u"><span>Carregar ficheiro</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Especial:P%C3%A1ginas_especiais" title="Lista de páginas especiais [q]" accesskey="q"><span>Páginas especiais</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&oldid=66709469" title="Hiperligação permanente para esta revisão desta página"><span>Hiperligação permanente</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=info" title="Mais informações sobre esta página"><span>Informações da página</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Especial:Citar&page=Programa%C3%A7%C3%A3o_funcional&id=66709469&wpFormIdentifier=titleform" title="Informação sobre como citar esta página"><span>Citar esta página</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Especial:UrlShortener&url=https%3A%2F%2Fpt.wikipedia.org%2Fwiki%2FPrograma%25C3%25A7%25C3%25A3o_funcional"><span>Obter URL encurtado</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Especial:QrCode&url=https%3A%2F%2Fpt.wikipedia.org%2Fwiki%2FPrograma%25C3%25A7%25C3%25A3o_funcional"><span>Descarregar código QR</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Imprimir/exportar </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Especial:Livro&bookcmd=book_creator&referer=Programa%C3%A7%C3%A3o+funcional"><span>Criar um livro</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Especial:DownloadAsPdf&page=Programa%C3%A7%C3%A3o_funcional&action=show-download-screen"><span>Descarregar como PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&printable=yes" title="Versão para impressão desta página [p]" accesskey="p"><span>Versão para impressão</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> Noutros projetos </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Functional_programming" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q193076" title="Hiperligação para o elemento do repositório de dados [g]" accesskey="g"><span>Elemento Wikidata</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Ferramentas de página"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Aspeto"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Aspeto</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">mover para a barra lateral</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">ocultar</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">Origem: Wikipédia, a enciclopédia livre.</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="pt" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r68971778">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}.mw-parser-output .cmbox{margin:3px 0;border-collapse:collapse;border:1px solid #a2a9b1;background-color:#dfe8ff;box-sizing:border-box;color:var(--color-base)}.mw-parser-output .cmbox-speedy{border:4px solid #b32424;background-color:#ffdbdb}.mw-parser-output .cmbox-delete{background-color:#ffdbdb}.mw-parser-output .cmbox-content{background-color:#ffe7ce}.mw-parser-output .cmbox-style{background-color:#fff9db}.mw-parser-output .cmbox-move{background-color:#e4d8ff}.mw-parser-output .cmbox-protection{background-color:#efefe1}.mw-parser-output .cmbox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .cmbox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .cmbox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .cmbox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .cmbox .mbox-invalid-type{text-align:center}@media(min-width:720px){.mw-parser-output .cmbox{margin:3px 10%}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .cmbox{background-color:#0d1a27}html.skin-theme-clientpref-night .mw-parser-output .cmbox-speedy,html.skin-theme-clientpref-night .mw-parser-output .cmbox-delete{background-color:#300}html.skin-theme-clientpref-night .mw-parser-output .cmbox-content{background-color:#331a00}html.skin-theme-clientpref-night .mw-parser-output .cmbox-style{background-color:#332b00}html.skin-theme-clientpref-night .mw-parser-output .cmbox-move{background-color:#08001a}html.skin-theme-clientpref-night .mw-parser-output .cmbox-protection{background-color:#212112}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cmbox{background-color:#0d1a27}html.skin-theme-clientpref-os .mw-parser-output .cmbox-speedy,html.skin-theme-clientpref-os .mw-parser-output .cmbox-delete{background-color:#300}html.skin-theme-clientpref-os .mw-parser-output .cmbox-content{background-color:#331a00}html.skin-theme-clientpref-os .mw-parser-output .cmbox-style{background-color:#332b00}html.skin-theme-clientpref-os .mw-parser-output .cmbox-move{background-color:#08001a}html.skin-theme-clientpref-os .mw-parser-output .cmbox-protection{background-color:#212112}}.mw-parser-output .fmbox{clear:both;margin:0.2em 0;width:100%;border:1px solid #a2a9b1;background-color:var(--background-color-interactive-subtle,#f8f9fa);box-sizing:border-box;color:var(--color-base,#202122)}.mw-parser-output .fmbox-warning{border:1px solid #bb7070;background-color:#ffdbdb}.mw-parser-output .fmbox-editnotice{background-color:transparent}.mw-parser-output .fmbox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .fmbox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .fmbox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .fmbox .mbox-invalid-type{text-align:center}@media screen{html.skin-theme-clientpref-night .mw-parser-output .fmbox-warning{background-color:#683131}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .fmbox-warning{background-color:#683131}}.mw-parser-output .imbox{margin:4px 0;border-collapse:collapse;border:3px solid #36c;background-color:var(--background-color-interactive-subtle,#f8f9fa);box-sizing:border-box}.mw-parser-output .imbox .mbox-text .imbox{margin:0 -0.5em;display:block}.mw-parser-output .imbox-speedy{border:3px solid #b32424;background-color:#fee7e6}.mw-parser-output .imbox-delete{border:3px solid #b32424}.mw-parser-output .imbox-content{border:3px solid #f28500}.mw-parser-output .imbox-style{border:3px solid #fc3}.mw-parser-output .imbox-move{border:3px solid #9932cc}.mw-parser-output .imbox-protection{border:3px solid #a2a9b1}.mw-parser-output .imbox-license{border:3px solid #88a}.mw-parser-output .imbox-featured{border:3px solid #cba135}.mw-parser-output .imbox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .imbox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .imbox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .imbox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .imbox .mbox-invalid-type{text-align:center}@media(min-width:720px){.mw-parser-output .imbox{margin:4px 10%}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .imbox-speedy{background-color:#310402}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .imbox-speedy{background-color:#310402}}.mw-parser-output .ombox{margin:4px 0;border-collapse:collapse;background-color:var(--background-color-neutral-subtle,#f8f9fa);box-sizing:border-box;border:1px solid #a2a9b1;color:var(--color-base,#202122)}.mw-parser-output .ombox.mbox-small{font-size:88%;line-height:1.25em}.mw-parser-output .ombox-speedy{border:2px solid #b32424;background-color:#fee7e6}.mw-parser-output .ombox-delete{border:2px solid #b32424}.mw-parser-output .ombox-content{border:1px solid #f28500}.mw-parser-output .ombox-style{border:1px solid #fc3}.mw-parser-output .ombox-move{border:1px solid #9932cc}.mw-parser-output .ombox-protection{border:2px solid #a2a9b1}.mw-parser-output .ombox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .ombox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .ombox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .ombox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ombox .mbox-invalid-type{text-align:center}@media(min-width:720px){.mw-parser-output .ombox{margin:4px 10%}.mw-parser-output .ombox.mbox-small{clear:right;float:right;margin:4px 0 4px 1em;width:238px}}body.skin--responsive .mw-parser-output table.ombox img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .ombox-speedy{background-color:#310402}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .ombox-speedy{background-color:#310402}}.mw-parser-output .tmbox{margin:4px 0;border-collapse:collapse;border:1px solid #c0c090;background-color:#f8eaba;box-sizing:border-box}.mw-parser-output .tmbox.mbox-small{font-size:88%;line-height:1.25em}.mw-parser-output .tmbox-speedy{border:2px solid #b32424;background-color:#fee7e6}.mw-parser-output .tmbox-delete{border:2px solid #b32424}.mw-parser-output .tmbox-content{border:1px solid #c0c090}.mw-parser-output .tmbox-style{border:2px solid #fc3}.mw-parser-output .tmbox-move{border:2px solid #9932cc}.mw-parser-output .tmbox .mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .tmbox .mbox-image{border:none;padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .tmbox .mbox-imageright{border:none;padding:2px 0.9em 2px 0;text-align:center}.mw-parser-output .tmbox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .tmbox .mbox-invalid-type{text-align:center}@media(min-width:720px){.mw-parser-output .tmbox{margin:4px 10%}.mw-parser-output .tmbox.mbox-small{clear:right;float:right;margin:4px 0 4px 1em;width:238px}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .tmbox{background-color:#2e2505}html.skin-theme-clientpref-night .mw-parser-output .tmbox-speedy{background-color:#310402}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .tmbox{background-color:#2e2505}html.skin-theme-clientpref-os .mw-parser-output .tmbox-speedy{background-color:#310402}}body.skin--responsive .mw-parser-output table.tmbox img{max-width:none!important}</style><table class="box-Mais_notas plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div style="width:52px"><span typeof="mw:File"><a href="/wiki/Ficheiro:Question_book-new.svg" class="mw-file-description"><img alt="Esta página cita fontes, mas não cobrem todo o conteúdo" src="//upload.wikimedia.org/wikipedia/commons/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">Esta página <a href="/wiki/Wikip%C3%A9dia:Livro_de_estilo/Cite_as_fontes" title="Wikipédia:Livro de estilo/Cite as fontes">cita fontes</a>, mas que <b><a href="/wiki/Wikip%C3%A9dia:V" class="mw-redirect" title="Wikipédia:V">não cobrem</a> todo o conteúdo</b>.<span class="hide-when-compact"> Ajude a <a href="/wiki/Wikip%C3%A9dia:Livro_de_estilo/Refer%C3%AAncias_e_notas_de_rodap%C3%A9" title="Wikipédia:Livro de estilo/Referências e notas de rodapé">inserir referências</a> (<small><i>Encontre fontes:</i> <span class="plainlinks"><a rel="nofollow" class="external text" href="https://wikipedialibrary.wmflabs.org/">ABW</a>  •  <a rel="nofollow" class="external text" href="https://www.periodicos.capes.gov.br">CAPES</a>  •  <a rel="nofollow" class="external text" href="https://www.google.com/search?as_eq=wikipedia&as_epq=Programa%C3%A7%C3%A3o+funcional">Google</a> (<a rel="nofollow" class="external text" href="https://www.google.com/search?hl=pt&tbm=nws&q=Programa%C3%A7%C3%A3o+funcional&oq=Programa%C3%A7%C3%A3o+funcional">N</a> • <a rel="nofollow" class="external text" href="http://books.google.com/books?&as_brr=0&as_epq=Programa%C3%A7%C3%A3o+funcional">L</a> • <a rel="nofollow" class="external text" href="https://scholar.google.com/scholar?hl=pt&q=Programa%C3%A7%C3%A3o+funcional">A</a>)</span></small>).</span> <small class="date-container"><i>(<span class="date">Maio de 2015</span>)</i></small></div></td></tr></tbody></table> <figure class="mw-halign-left" typeof="mw:File/Thumb"><a href="/wiki/Ficheiro:Lambda_lc.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Lambda_lc.svg/117px-Lambda_lc.svg.png" decoding="async" width="117" height="117" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Lambda_lc.svg/176px-Lambda_lc.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Lambda_lc.svg/234px-Lambda_lc.svg.png 2x" data-file-width="375" data-file-height="375" /></a><figcaption>Lambda, símbolo comumente usado para denotar abstrações no cálculo lambda.</figcaption></figure> <p>Em <a href="/wiki/Ci%C3%AAncia_da_computa%C3%A7%C3%A3o" title="Ciência da computação">ciência da computação</a>, <b>programação funcional</b> é um <a href="/wiki/Paradigma_de_programa%C3%A7%C3%A3o" title="Paradigma de programação">paradigma de programação</a> que trata a computação como uma avaliação de <a href="/wiki/Fun%C3%A7%C3%A3o_matem%C3%A1tica" class="mw-redirect" title="Função matemática">funções matemáticas</a> e que evita estados ou dados mutáveis. Ela enfatiza a aplicação de <a href="/wiki/Sub-rotina" class="mw-redirect" title="Sub-rotina">funções</a>, em contraste da <a href="/wiki/Programa%C3%A7%C3%A3o_imperativa" title="Programação imperativa">programação imperativa</a>, que enfatiza mudanças no estado do programa.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span>[</span>1<span>]</span></a></sup> Enfatizando as expressões ao invés de comandos, as expressões são utilizados para cálculo de valores com wikidados imutáveis.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span>[</span>2<span>]</span></a></sup> </p><p>Uma função, neste sentido, pode ter ou não ter <a href="/wiki/Par%C3%A2metro_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)" title="Parâmetro (ciência da computação)">parâmetros</a> e um simples valor de retorno. Os parâmetros são os valores de entrada da função, e o valor de retorno é o resultado da função. A definição de uma função descreve como a função será avaliada em termos de outras funções. Por exemplo, a função <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle f(x)=x^{2}+2}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>f</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo stretchy="false">)</mo> <mo>=</mo> <msup> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msup> <mo>+</mo> <mn>2</mn> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle f(x)=x^{2}+2}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/36b2fad9afa6bfc8ab4f81a413ebf4e9ba7f9117" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:13.903ex; height:3.176ex;" alt="{\displaystyle f(x)=x^{2}+2}"></span> é definida em termos de funções de <a href="/wiki/Exponencia%C3%A7%C3%A3o" title="Exponenciação">exponenciação</a> e <a href="/wiki/Adi%C3%A7%C3%A3o" title="Adição">adição</a>. Do mesmo modo, a linguagem deve oferecer funções básicas que não requerem definições adicionais. </p><p>A programação funcional trata as funções de forma em que estas possam ser passadas como parâmetro e valores para outras e funções e podendo ter o resultado armazenado em uma constante.<sup id="cite_ref-:0_3-0" class="reference"><a href="#cite_note-:0-3"><span>[</span>3<span>]</span></a></sup> </p><p><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o" title="Linguagem de programação">Linguagens de programação</a> funcionais, especialmente as puramente funcionais, têm sido mais usadas academicamente que no <a href="/wiki/Desenvolvimento_de_software" title="Desenvolvimento de software">desenvolvimento comercial de software</a>. Entretanto, algumas linguagens notáveis usadas na indústria e no comércio incluem <a href="/wiki/Erlang_(linguagem_de_programa%C3%A7%C3%A3o)" title="Erlang (linguagem de programação)">Erlang</a> (aplicações concorrentes),<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span>[</span>4<span>]</span></a></sup> <a href="/wiki/R_(linguagem_de_programa%C3%A7%C3%A3o)" title="R (linguagem de programação)">R</a> (estatística), OCaml (quantitative trading)<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span>[</span>5<span>]</span></a></sup>, <a href="/wiki/Mathematica" title="Mathematica">Mathematica</a> (matemática simbólica)<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span>[</span>6<span>]</span></a></sup> <a href="/wiki/J_(linguagem_de_programa%C3%A7%C3%A3o)" title="J (linguagem de programação)">J</a>, <a href="/w/index.php?title=K_(linguagem_de_programa%C3%A7%C3%A3o)&action=edit&redlink=1" class="new" title="K (linguagem de programação) (página não existe)">K</a> (análise financeira) e <a href="/wiki/XSLT" title="XSLT">XSLT</a>.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span>[</span>7<span>]</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span>[</span>8<span>]</span></a></sup> Importantes influências na programação funcional foram o <a href="/wiki/C%C3%A1lculo_lambda" title="Cálculo lambda">cálculo lambda</a>, as linguagens de programação <a href="/wiki/APL" class="mw-redirect" title="APL">APL</a> e <a href="/wiki/Lisp" title="Lisp">Lisp</a>, e mais recentemente <a href="/wiki/ML_(linguagem_de_programa%C3%A7%C3%A3o)" title="ML (linguagem de programação)">ML</a>, <a href="/wiki/Haskell_(linguagem_de_programa%C3%A7%C3%A3o)" title="Haskell (linguagem de programação)">Haskell</a>, <a href="/wiki/OCaml" title="OCaml">OCaml</a>, <a href="/wiki/F_Sharp" title="F Sharp">F#</a> e <a href="/wiki/Elixir_(linguagem_de_programa%C3%A7%C3%A3o)" title="Elixir (linguagem de programação)">Elixir</a>. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Desenvolvimento">Desenvolvimento</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=1" title="Editar secção: Desenvolvimento" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=1" title="Editar código-fonte da secção: Desenvolvimento"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>As funções podem ser manipuladas numa grande variedade de formas numa <a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o" title="Linguagem de programação">linguagem de programação</a> funcional. As funções são tratadas como valores de primeira importância, o que é o mesmo que dizer que funções podem ser parâmetros ou valores de entrada para outras funções e podem ser os valores de retorno ou saída de uma função. Então podemos entender paradigma funcional como um mapeamento dos valores de entrada nos valores de retorno, através de funções. Isso permite que funções como <code>mapcar</code> em <a href="/wiki/LISP" class="mw-redirect" title="LISP">LISP</a> e <code>map</code> em <a href="/wiki/Haskell_(linguagem_de_programa%C3%A7%C3%A3o)" title="Haskell (linguagem de programação)">Haskell</a> que tomam ambos uma função e uma <a href="/wiki/Lista_encadeada" class="mw-redirect" title="Lista encadeada">lista</a> como entrada e aplicam a função de entrada a cada elemento da lista. Funções podem ser nomeadas, como em outras linguagens, ou definidas anonimamente (algumas vezes durante a execução do programa) usando uma abstração <a href="/wiki/C%C3%A1lculo_lambda" title="Cálculo lambda">lambda</a> e usadas como valores em outras funções. Linguagens funcionais também permitem que funções sejam do tipo <i>curry</i>. <i><a href="/wiki/Currying" title="Currying">Currying</a></i> é uma técnica para reescrita de funções com múltiplos parâmetros como a composição de funções de um parâmetro. A função do tipo <i>curry</i> pode ser aplicada apenas a um subconjunto de seus parâmetros. O resultado é uma função onde os parâmetros neste subconjunto são agora fixados como constantes, e os valores do resto dos parâmetros ainda não são especificados. Esta nova função pode ser aplicada aos parâmetros restantes para obter o valor da função final. Por exemplo, uma função <code>adiciona(x,y) = x + y</code> pode ser do tipo <i>curry</i> de forma que o valor de retorno <code>adiciona(2)</code> — note que não há um parâmetro y — será uma função anônima, o que é equivalente à função <code>adiciona2(y) = 2 + y</code>. Esta nova função tem apenas um parâmetro e corresponde a adicionar 2 a um número. Novamente, isso é apenas possível porque as funções são tratadas como valores de primeira importância. </p><p>O cálculo lambda pode ser considerado a primeira linguagem de programação funcional, embora nunca tenha sido projetada para ser realmente executada em um computador. É um modelo de computação projetado por <a href="/wiki/Alonzo_Church" title="Alonzo Church">Alonzo Church</a> nos <a href="/wiki/Anos_1930" class="mw-redirect" title="Anos 1930">anos 1930</a> que oferece um modo muito formal de descrever um cálculo de uma função. A primeira linguagem de programação funcional criada para computadores foi <a href="/wiki/LISP" class="mw-redirect" title="LISP">LISP</a>, desenvolvida por <a href="/wiki/John_McCarthy" title="John McCarthy">John McCarthy</a> no <a href="/wiki/Instituto_de_Tecnologia_de_Massachusetts" title="Instituto de Tecnologia de Massachusetts">Instituto de Tecnologia de Massachusetts</a> (MIT) no fim dos <a href="/wiki/Anos_1950" class="mw-redirect" title="Anos 1950">anos 1950</a>. Mesmo não sendo uma linguagem de programação puramente funcional, LISP introduziu a maioria das características hoje encontradas nas modernas linguagens de programação funcional. <a href="/wiki/Scheme" title="Scheme">Scheme</a> foi uma tentativa posterior de simplificar e melhorar LISP. Nos <a href="/wiki/Anos_1970" class="mw-redirect" title="Anos 1970">anos 1970</a> a linguagem <a href="/wiki/ML_(linguagem_de_programa%C3%A7%C3%A3o)" title="ML (linguagem de programação)">ML</a> foi criada pela <a href="/wiki/Universidade_de_Edimburgo" title="Universidade de Edimburgo">Universidade de Edimburgo</a>, e <a href="/w/index.php?title=David_Turner&action=edit&redlink=1" class="new" title="David Turner (página não existe)">David Turner</a> desenvolveu a linguagem <a href="/wiki/Miranda_(linguagem_de_programa%C3%A7%C3%A3o)" title="Miranda (linguagem de programação)">Miranda</a> na Universidade de Kent. A linguagem <a href="/wiki/Haskell_(linguagem_de_programa%C3%A7%C3%A3o)" title="Haskell (linguagem de programação)">Haskell</a> foi lançada no fim dos <a href="/wiki/Anos_1980" class="mw-redirect" title="Anos 1980">anos 1980</a> numa tentativa de juntar muitas ideias na pesquisa de programação funcional. </p> <div class="mw-heading mw-heading2"><h2 id="Vantagens">Vantagens</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=2" title="Editar secção: Vantagens" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=2" title="Editar código-fonte da secção: Vantagens"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>O processo de alocação de memória é automático não sendo declarado pelo usuário, eliminando os erros de alocação na função, desta maneira garantindo que a saída da função será sempre o mesmo se dado um mesmo conjunto de dados.<sup id="cite_ref-:0_3-1" class="reference"><a href="#cite_note-:0-3"><span>[</span>3<span>]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Desvantagens">Desvantagens</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=3" title="Editar secção: Desvantagens" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=3" title="Editar código-fonte da secção: Desvantagens"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Na programação funcional alguns construtos básicos sobre programação, como alocamento explícito de memória ou de variáveis, são dados como inexistentes, entretanto estes construtos ainda funcionam, porém de forma menos explícita.<sup id="cite_ref-:0_3-2" class="reference"><a href="#cite_note-:0-3"><span>[</span>3<span>]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Linguagens_de_programação"><span id="Linguagens_de_programa.C3.A7.C3.A3o"></span>Linguagens de programação</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=4" title="Editar secção: Linguagens de programação" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=4" title="Editar código-fonte da secção: Linguagens de programação"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Listado abaixo algumas das principais linguagens de programação funcional: </p> <ul><li>Prolog;</li> <li>Lisp;</li> <li>Scheme (Simplificação do Lisp);</li> <li>ML (Criação Universitária);</li> <li>Miranda (Criação Universitária);</li> <li>Haskell;</li> <li>Elixir.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Exemplos">Exemplos</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=5" title="Editar secção: Exemplos" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=5" title="Editar código-fonte da secção: Exemplos"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading4"><h4 id="Scheme"><a href="/wiki/Scheme" title="Scheme">Scheme</a></h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=6" title="Editar secção: Scheme" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=6" title="Editar código-fonte da secção: Scheme"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-scheme mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="p">((</span><span class="k">lambda</span><span class="w"> </span><span class="p">(</span><span class="nf">x</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">+</span><span class="w"> </span><span class="nv">x</span><span class="w"> </span><span class="nv">x</span><span class="p">))</span><span class="w"> </span><span class="p">(</span><span class="nb">*</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="p">))</span> </pre></div><p>Neste caso, isso é o que aconteceria: </p><p>3*4 = 12; </p><p>x = 12; </p><p>x + x = 12 + 12 = 24;. </p> <div class="mw-heading mw-heading4"><h4 id="Haskell"><a href="/wiki/Haskell_(linguagem_de_programa%C3%A7%C3%A3o)" title="Haskell (linguagem de programação)">Haskell</a></h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=7" title="Editar secção: Haskell" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=7" title="Editar código-fonte da secção: Haskell"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="nf">dobrarLista</span><span class="w"> </span><span class="n">lst</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="n">map</span><span class="w"> </span><span class="p">(</span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-></span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="n">lst</span> </pre></div><p>Neste caso em Haskell, ele mapeia uma lista chamada <i>lst</i> dobrando seus valores.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span>[</span>9<span>]</span></a></sup> </p><div class="mw-heading mw-heading2"><h2 id="Contraste_com_a_programação_imperativa"><span id="Contraste_com_a_programa.C3.A7.C3.A3o_imperativa"></span>Contraste com a programação imperativa</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=8" title="Editar secção: Contraste com a programação imperativa" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=8" title="Editar código-fonte da secção: Contraste com a programação imperativa"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A programação funcional pode ser contrastada com a <a href="/wiki/Programa%C3%A7%C3%A3o_imperativa" title="Programação imperativa">programação imperativa</a>. Na programação funcional parecem faltar diversas construções frequentemente (embora incorretamente) consideradas essenciais em linguagens imperativas, como <a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_C" class="mw-redirect" title="Linguagem de programação C">C</a> ou <a href="/wiki/Pascal_(linguagem_de_programa%C3%A7%C3%A3o)" title="Pascal (linguagem de programação)">Pascal</a>. Por exemplo, numa programação estritamente funcional, não há alocação explícita de <a href="/wiki/Mem%C3%B3ria_de_computador" class="mw-redirect" title="Memória de computador">memória</a>, nem declaração explícita de <a href="/wiki/Vari%C3%A1vel_(programa%C3%A7%C3%A3o)" title="Variável (programação)">variáveis</a>. No entanto, essas operações podem ocorrer automaticamente quando a função é invocada; a alocação de memória ocorre para criar espaço para os parâmetros e para o valor de retorno, e a declaração ocorre para copiar os parâmetros dentro deste espaço recém-alocado e para copiar o valor de retorno de volta para dentro da função que a chama. Ambas as operações podem ocorrer nos pontos de entrada e na saída da função, então efeitos colaterais no cálculo da função são eliminados. Ao não permitir efeitos colaterais em funções, a linguagem oferece transparência referencial. Isso assegura que o resultado da função será o mesmo para um dado conjunto de parâmetros não importando onde, ou quando, seja avaliada. Transparência referencial facilita muito ambas as tarefas de comprovar a correção do programa e automaticamente identificar computações independentes para execução paralela. </p><p>Laços, outra construção de programação imperativa, estão presentes através da construção funcional mais geral de <a href="/wiki/Recursividade_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)" title="Recursividade (ciência da computação)">recursividade</a>. Funções recursivas invocam a si mesmas, permitindo que uma operação seja realizada várias vezes. Recursividade em programação funcional pode assumir várias formas e é em geral uma técnica mais poderosa que o uso de laços. Por essa razão, quase todas as linguagens imperativas também a suportam (sendo <a href="/wiki/Fortran" title="Fortran">Fortran 77</a> e <a href="/wiki/COBOL" title="COBOL">COBOL</a> exceções notáveis). </p> <div class="mw-heading mw-heading2"><h2 id="Ver_também"><span id="Ver_tamb.C3.A9m"></span>Ver também</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=9" title="Editar secção: Ver também" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=9" title="Editar código-fonte da secção: Ver também"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/C%C3%A1lculo_lambda" title="Cálculo lambda">Cálculo lambda</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="Bibliografia">Bibliografia</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&veaction=edit&section=10" title="Editar secção: Bibliografia" class="mw-editsection-visualeditor"><span>editar</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&action=edit&section=10" title="Editar código-fonte da secção: Bibliografia"><span>editar código-fonte</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Cousineau, Guy and Michel Mauny. <i>The Functional Approach to Programming</i>. Cambridge, UK: Cambridge University Press, 1998.</li> <li>Graham, Paul. <i>ANSI Common LISP</i>. Englewood Cliffs, New Jersey: Prentice Hall, 1996.</li> <li class="mw-empty-elt"></li> <li>Pratt, Terrence, W. and Marvin V. Zelkowitz. <i>Programming Languages: Design and Implementation</i>. 3rd ed. Englewood Cliffs, New Jersey: Prentice Hall, 1996.</li> <li>Salus, Peter H. <i>Functional and Logic Programming Languages. Vol. 4 of Handbook of Programming Languages</i>. Indianapolis, Indiana: Macmillan Technical Publishing, 1998.</li> <li>Thompson, Simon. <i>Haskell: The Craft of Functional Programming</i>. Harlow, England: Addison-Wesley Longman Limited, 1996.</li></ul> <h2 id="Referências" style="cursor: help;" title="Esta seção foi configurada para não ser editável diretamente. Edite a página toda ou a seção anterior em vez disso."><span id="Refer.C3.AAncias"></span>Referências</h2> <div class="reflist" style="list-style-type: decimal;"><div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Paul Hudak (setembro de <a href="/wiki/1989" title="1989">1989</a>). "<i><a rel="nofollow" class="external text" href="http://www.cs.berkeley.edu/~jcondit/pl-prelim/hudak89functional.pdf">Conception, evolution, and application of functional programming languages</a></i>" (pdf) . <a href="/wiki/Association_for_Computing_Machinery" title="Association for Computing Machinery">ACM</a> Computing Surveys. </span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><cite class="citation journal">R. Gudwin, Ricardo. <a rel="nofollow" class="external text" href="ftp://ftp.dca.fee.unicamp.br/pub/docs/ea877/lingpro.pdf">«Linguagens de Programação»</a> <span style="font-size:85%;">(PDF)</span>. <i>Universidade Estadual de Campinas Faculdade de Engenharia Elétrica e de Computação</i></cite><span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fpt.wikipedia.org%3APrograma%C3%A7%C3%A3o+funcional&rft.atitle=Linguagens+de+Programa%C3%A7%C3%A3o&rft.aufirst=Ricardo&rft.aulast=R.+Gudwin&rft.genre=article&rft.jtitle=Universidade+Estadual+de+Campinas+Faculdade+de+Engenharia+El%C3%A9trica+e+de+Computa%C3%A7%C3%A3o&rft_id=ftp%3A%2F%2Fftp.dca.fee.unicamp.br%2Fpub%2Fdocs%2Fea877%2Flingpro.pdf&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;"> </span></span></span> </li> <li id="cite_note-:0-3"><span class="mw-cite-backlink">↑ <sup><i><b><a href="#cite_ref-:0_3-0">a</a></b></i></sup> <sup><i><b><a href="#cite_ref-:0_3-1">b</a></b></i></sup> <sup><i><b><a href="#cite_ref-:0_3-2">c</a></b></i></sup></span> <span class="reference-text"><cite class="citation web">Jungthon, Machado Goulart, Gustavo, Cristian. <a rel="nofollow" class="external text" href="http://www.petry.pro.br/sistemas/programacao1/materiais/artigo_paradigmas_de_programacao.pdf">«Paradigmas de Programação»</a> <span style="font-size:85%;">(PDF)</span>. Faculdade de Informática de Taquara (FIT)</cite><span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fpt.wikipedia.org%3APrograma%C3%A7%C3%A3o+funcional&rft.aufirst=Gustavo%2C+Cristian&rft.aulast=Jungthon%2C+Machado+Goulart&rft.btitle=Paradigmas+de+Programa%C3%A7%C3%A3o&rft.genre=unknown&rft.pub=Faculdade+de+Inform%C3%A1tica+de+Taquara+%28FIT%29&rft_id=http%3A%2F%2Fwww.petry.pro.br%2Fsistemas%2Fprogramacao1%2Fmateriais%2Fartigo_paradigmas_de_programacao.pdf&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;"> </span></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="http://www.erlang.org/faq/t1.html#AEN50">«Who uses Erlang for product development?»</a> (em inglês)<span class="reference-accessdate">. Consultado em 27 de junho de 2006</span></cite><span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fpt.wikipedia.org%3APrograma%C3%A7%C3%A3o+funcional&rft.btitle=Who+uses+Erlang+for+product+development%3F&rft.genre=unknown&rft_id=http%3A%2F%2Fwww.erlang.org%2Ffaq%2Ft1.html%23AEN50&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;"> </span></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://www.janestreet.com/technology/">«Technology :: Jane Street»</a>. <i>www.janestreet.com</i> (em inglês)<span class="reference-accessdate">. Consultado em 25 de setembro de 2023</span></cite><span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fpt.wikipedia.org%3APrograma%C3%A7%C3%A3o+funcional&rft.atitle=Technology+%3A%3A+Jane+Street&rft.genre=unknown&rft.jtitle=www.janestreet.com&rft_id=https%3A%2F%2Fwww.janestreet.com%2Ftechnology%2F&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;"> </span></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><cite class="citation web">Departamento de Matemática Aplicada, Universidade do Colorado. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20071113175801/http://amath.colorado.edu/computing/mmm/funcproc.html">«Functional vs. Procedural Programming Language»</a> (em inglês)<span class="reference-accessdate">. Consultado em 28 de agosto de 2006</span>. Arquivado do <a rel="nofollow" class="external text" href="http://amath.colorado.edu/computing/mmm/funcproc.html">original</a> em 13 de novembro de 2007</cite><span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fpt.wikipedia.org%3APrograma%C3%A7%C3%A3o+funcional&rft.au=Departamento+de+Matem%C3%A1tica+Aplicada%2C+Universidade+do+Colorado&rft.btitle=Functional+vs.+Procedural+Programming+Language&rft.genre=unknown&rft_id=http%3A%2F%2Famath.colorado.edu%2Fcomputing%2Fmmm%2Ffuncproc.html&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;"> </span></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text"><cite class="citation web">Dimitre Novatchev. <a rel="nofollow" class="external text" href="http://www.topxml.com/xsl/articles/fp/">«The Functional Programming Language XSLT - A proof through examples»</a> (em inglês)<span class="reference-accessdate">. Consultado em 27 de maio de 2006</span></cite><span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fpt.wikipedia.org%3APrograma%C3%A7%C3%A3o+funcional&rft.au=Dimitre+Novatchev&rft.btitle=The+Functional+Programming+Language+XSLT+-+A+proof+through+examples&rft.genre=unknown&rft_id=http%3A%2F%2Fwww.topxml.com%2Fxsl%2Farticles%2Ffp%2F&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;"> </span></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><cite class="citation web">David Mertz. <a rel="nofollow" class="external text" href="http://gnosis.cx/publish/programming/xml_models_fp.html">«XML Programming Paradigms (part four): Functional Programming approached to XML processing»</a> (em inglês)<span class="reference-accessdate">. Consultado em 27 de maio de 2006</span></cite><span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fpt.wikipedia.org%3APrograma%C3%A7%C3%A3o+funcional&rft.au=David+Mertz&rft.btitle=XML+Programming+Paradigms+%28part+four%29%3A+Functional+Programming+approached+to+XML+processing&rft.genre=unknown&rft_id=http%3A%2F%2Fgnosis.cx%2Fpublish%2Fprogramming%2Fxml_models_fp.html&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;"> </span></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text"><cite class="citation web"><a class="external text" href="https://pt.wikibooks.org/wiki/Haskell/Lambdas_e_operadores">«Haskell/Lambdas e operadores - Wikilivros»</a>. <i>pt.wikibooks.org</i><span class="reference-accessdate">. Consultado em 9 de abril de 2019</span></cite><span title="ctx_ver=Z39.88-2004&rfr_id=info%3Asid%2Fpt.wikipedia.org%3APrograma%C3%A7%C3%A3o+funcional&rft.atitle=Haskell%2FLambdas+e+operadores+-+Wikilivros&rft.genre=unknown&rft.jtitle=pt.wikibooks.org&rft_id=https%3A%2F%2Fpt.wikibooks.org%2Fwiki%2FHaskell%2FLambdas_e_operadores&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;"> </span></span></span> </li> </ol></div></div> <div role="navigation" class="navbox" aria-labelledby="Tipos_de_linguagens_de_programação" style="padding:3px"><table class="nowraplinks collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div class="plainlinks hlist navbar mini"><ul><li class="nv-ver"><a href="/wiki/Predefini%C3%A7%C3%A3o:Tipos_de_linguagens_de_programa%C3%A7%C3%A3o" title="Predefinição:Tipos de linguagens de programação"><abbr title="Ver esta predefinição" style=";;background:none transparent;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none; padding:0;">v</abbr></a></li><li class="nv-discutir"><a href="/wiki/Predefini%C3%A7%C3%A3o_Discuss%C3%A3o:Tipos_de_linguagens_de_programa%C3%A7%C3%A3o" title="Predefinição Discussão:Tipos de linguagens de programação"><abbr title="Discutir esta predefinição" style=";;background:none transparent;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none; padding:0;">d</abbr></a></li><li class="nv-editar"><a class="external text" href="https://pt.wikipedia.org/w/index.php?title=Predefini%C3%A7%C3%A3o:Tipos_de_linguagens_de_programa%C3%A7%C3%A3o&action=edit"><abbr title="Editar esta predefinição" style=";;background:none transparent;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none; padding:0;">e</abbr></a></li></ul></div><div id="Tipos_de_linguagens_de_programação" style="font-size:114%;margin:0 4em"><a href="/wiki/Paradigma_de_programa%C3%A7%C3%A3o" title="Paradigma de programação">Tipos de linguagens de programação</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Paradigma_de_programa%C3%A7%C3%A3o" title="Paradigma de programação">Paradigma</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/w/index.php?title=Modelo_ator&action=edit&redlink=1" class="new" title="Modelo ator (página não existe)">Modelo ator</a></li> <li><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_de_matrizes&action=edit&redlink=1" class="new" title="Programação de matrizes (página não existe)">Matrizes</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_orientada_a_aspectos" class="mw-redirect" title="Programação orientada a aspectos">POA</a></li> <li><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_baseada_em_classes&action=edit&redlink=1" class="new" title="Programação baseada em classes (página não existe)">Classes</a></li> <li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_concatenativa" title="Linguagem de programação concatenativa">Concatenativa</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_concorrente" title="Programação concorrente">Concorrente</a></li> <li><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_de_fluxo_de_dados&action=edit&redlink=1" class="new" title="Programação de fluxo de dados (página não existe)">Fluxo de dados</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_declarativa" title="Programação declarativa">Declarativa</a></li> <li><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_diferenci%C3%A1vel&action=edit&redlink=1" class="new" title="Programação diferenciável (página não existe)">Diferenciável</a></li> <li><a href="/wiki/Linguagem_de_dom%C3%ADnio_espec%C3%ADfico" title="Linguagem de domínio específico">Domínio específico</a></li> <li><a href="/w/index.php?title=Linguagem_de_programa%C3%A7%C3%A3o_din%C3%A2mica&action=edit&redlink=1" class="new" title="Linguagem de programação dinâmica (página não existe)">Dinâmica</a></li> <li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_esot%C3%A9rica" title="Linguagem de programação esotérica">Esotérica</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_orientada_a_eventos" title="Programação orientada a eventos">Orientada a eventos</a></li> <li><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_extens%C3%ADvel&action=edit&redlink=1" class="new" title="Programação extensível (página não existe)">Extensível</a></li> <li><a class="mw-selflink selflink">Funcional</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_imperativa" title="Programação imperativa">Imperativa</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_l%C3%B3gica" title="Programação lógica">Lógica</a></li> <li><a href="/wiki/Macro" title="Macro">Macro</a></li> <li><a href="/wiki/Metaprograma%C3%A7%C3%A3o" title="Metaprogramação">Metaprogramação</a></li> <li><a href="/w/index.php?title=Linguagem_baseada_em_objetos&action=edit&redlink=1" class="new" title="Linguagem baseada em objetos (página não existe)">Baseada em objetos</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_orientada_a_objetos" title="Programação orientada a objetos">Orientada a objetos</a></li> <li><a href="/wiki/Pipeline_(software)" class="mw-redirect" title="Pipeline (software)">Pipeline</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_procedural" title="Programação procedural">Procedural</a></li> <li><a href="/wiki/Programa%C3%A7%C3%A3o_baseada_em_prot%C3%B3tipos" title="Programação baseada em protótipos">Baseada em protótipos</a></li> <li><a href="/wiki/Reflex%C3%A3o_(programa%C3%A7%C3%A3o)" title="Reflexão (programação)">Reflexão</a></li> <li><a href="/w/index.php?title=Sistema_baseado_em_regras&action=edit&redlink=1" class="new" title="Sistema baseado em regras (página não existe)">Baseado em regras</a></li> <li><a href="/wiki/Linguagem_de_script" title="Linguagem de script">Script</a></li> <li><a href="/w/index.php?title=Programa%C3%A7%C3%A3o_orientada_a_pilha&action=edit&redlink=1" class="new" title="Programação orientada a pilha (página não existe)">Orientada a pilha</a></li> <li><a href="/w/index.php?title=Linguagem_de_programa%C3%A7%C3%A3o_s%C3%ADncrona&action=edit&redlink=1" class="new" title="Linguagem de programação síncrona (página não existe)">Síncrona</a></li> <li><a href="/w/index.php?title=Linguagem_de_programa%C3%A7%C3%A3o_t%C3%A1til&action=edit&redlink=1" class="new" title="Linguagem de programação tátil (página não existe)">Tátil</a></li> <li><a href="/wiki/Processador_de_modelo" title="Processador de modelo">Modelo</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Nível</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/C%C3%B3digo_de_m%C3%A1quina" title="Código de máquina">Máquina</a></li> <li><a href="/wiki/Linguagem_de_montagem" class="mw-redirect" title="Linguagem de montagem">Assembly</a></li> <li><a href="/wiki/Linguagem_compilada" title="Linguagem compilada">Compilada</a></li> <li><a href="/wiki/Interpretador" title="Interpretador">Interpretada</a></li></ul> <ul><li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_baixo_n%C3%ADvel" class="mw-redirect" title="Linguagem de programação de baixo nível">Baixo-nível</a></li> <li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_alto_n%C3%ADvel" class="mw-redirect" title="Linguagem de programação de alto nível">Alto-nível</a></li> <li><a href="/w/index.php?title=Linguagem_de_programa%C3%A7%C3%A3o_de_alt%C3%ADssimo_n%C3%ADvel&action=edit&redlink=1" class="new" title="Linguagem de programação de altíssimo nível (página não existe)">Altíssimo-nível</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Geração</th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_primeira_gera%C3%A7%C3%A3o" title="Linguagem de programação de primeira geração">Primeira</a></li> <li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_segunda_gera%C3%A7%C3%A3o" class="mw-redirect" title="Linguagem de programação de segunda geração">Segunda</a></li> <li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_terceira_gera%C3%A7%C3%A3o" title="Linguagem de programação de terceira geração">Terceira</a></li> <li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_quarta_gera%C3%A7%C3%A3o" title="Linguagem de programação de quarta geração">Quarta</a></li> <li><a href="/w/index.php?title=Linguagem_de_programa%C3%A7%C3%A3o_de_quinta_gera%C3%A7%C3%A3o&action=edit&redlink=1" class="new" title="Linguagem de programação de quinta geração (página não existe)">Quinta</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Relacionado</th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/w/index.php?title=Linguagens_de_programa%C3%A7%C3%A3o_que_n%C3%A3o_s%C3%A3o_baseadas_em_ingl%C3%AAs&action=edit&redlink=1" class="new" title="Linguagens de programação que não são baseadas em inglês (página não existe)">Não-baseadas em inglês</a></li> <li><a href="/wiki/Linguagem_de_programa%C3%A7%C3%A3o_visual" title="Linguagem de programação visual">Visual</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐66695f89d8‐gjqqj Cached time: 20241119195949 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.219 seconds Real time usage: 0.316 seconds Preprocessor visited node count: 698/1000000 Post‐expand include size: 35748/2097152 bytes Template argument size: 496/2097152 bytes Highest expansion depth: 11/100 Expensive parser function count: 4/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 20667/5000000 bytes Lua time usage: 0.134/10.000 seconds Lua memory usage: 3204612/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 230.005 1 -total 55.53% 127.721 1 Predefinição:Mais_notas 46.17% 106.184 1 Predefinição:Ambox 34.88% 80.230 1 Predefinição:Referências 15.36% 35.324 1 Predefinição:Citar_periódico 12.61% 29.014 7 Predefinição:Citar_web 6.09% 14.001 1 Predefinição:Tipos_de_linguagens_de_programação 4.68% 10.768 1 Predefinição:Navbox 2.71% 6.233 1 Predefinição:Argvar 2.43% 5.589 1 Predefinição:Encontre_fontes --> <!-- Saved in parser cache with key ptwiki:pcache:idhash:1464-0!canonical and timestamp 20241119195949 and revision id 66709469. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Obtida de "<a dir="ltr" href="https://pt.wikipedia.org/w/index.php?title=Programação_funcional&oldid=66709469">https://pt.wikipedia.org/w/index.php?title=Programação_funcional&oldid=66709469</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Especial:Categorias" title="Especial:Categorias">Categorias</a>: <ul><li><a href="/wiki/Categoria:Programa%C3%A7%C3%A3o_funcional" title="Categoria:Programação funcional">Programação funcional</a></li><li><a href="/wiki/Categoria:Ci%C3%AAncia_da_computa%C3%A7%C3%A3o" title="Categoria:Ciência da computação">Ciência da computação</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Categorias ocultas: <ul><li><a href="/wiki/Categoria:!CS1_ingl%C3%AAs-fontes_em_l%C3%ADngua_(en)" title="Categoria:!CS1 inglês-fontes em língua (en)">!CS1 inglês-fontes em língua (en)</a></li><li><a href="/wiki/Categoria:!Artigos_que_carecem_de_notas_de_rodap%C3%A9_desde_maio_de_2015" title="Categoria:!Artigos que carecem de notas de rodapé desde maio de 2015">!Artigos que carecem de notas de rodapé desde maio de 2015</a></li><li><a href="/wiki/Categoria:!Artigos_que_carecem_de_notas_de_rodap%C3%A9_sem_indica%C3%A7%C3%A3o_de_tema" title="Categoria:!Artigos que carecem de notas de rodapé sem indicação de tema">!Artigos que carecem de notas de rodapé sem indicação de tema</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Esta página foi editada pela última vez às 19h56min de 3 de outubro de 2023.</li> <li id="footer-info-copyright">Este texto é disponibilizado nos termos da licença <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.pt">Atribuição-CompartilhaIgual 4.0 Internacional (CC BY-SA 4.0) da Creative Commons</a>; pode estar sujeito a condições adicionais. Para mais detalhes, consulte as <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">condições de utilização</a>.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/pt-br">Política de privacidade</a></li> <li id="footer-places-about"><a href="/wiki/Wikip%C3%A9dia:Sobre">Sobre a Wikipédia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikip%C3%A9dia:Aviso_geral">Avisos gerais</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Código de conduta</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Programadores</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/pt.wikipedia.org">Estatísticas</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Declaração sobre ''cookies''</a></li> <li id="footer-places-mobileview"><a href="//pt.m.wikipedia.org/w/index.php?title=Programa%C3%A7%C3%A3o_funcional&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Versão móvel</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-697b7966c5-sssjb","wgBackendResponseTime":156,"wgPageParseReport":{"limitreport":{"cputime":"0.219","walltime":"0.316","ppvisitednodes":{"value":698,"limit":1000000},"postexpandincludesize":{"value":35748,"limit":2097152},"templateargumentsize":{"value":496,"limit":2097152},"expansiondepth":{"value":11,"limit":100},"expensivefunctioncount":{"value":4,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":20667,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 230.005 1 -total"," 55.53% 127.721 1 Predefinição:Mais_notas"," 46.17% 106.184 1 Predefinição:Ambox"," 34.88% 80.230 1 Predefinição:Referências"," 15.36% 35.324 1 Predefinição:Citar_periódico"," 12.61% 29.014 7 Predefinição:Citar_web"," 6.09% 14.001 1 Predefinição:Tipos_de_linguagens_de_programação"," 4.68% 10.768 1 Predefinição:Navbox"," 2.71% 6.233 1 Predefinição:Argvar"," 2.43% 5.589 1 Predefinição:Encontre_fontes"]},"scribunto":{"limitreport-timeusage":{"value":"0.134","limit":"10.000"},"limitreport-memusage":{"value":3204612,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-66695f89d8-gjqqj","timestamp":"20241119195949","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Programa\u00e7\u00e3o funcional","url":"https:\/\/pt.wikipedia.org\/wiki\/Programa%C3%A7%C3%A3o_funcional","sameAs":"http:\/\/www.wikidata.org\/entity\/Q193076","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q193076","author":{"@type":"Organization","name":"Contribuidores dos projetos da Wikimedia"},"publisher":{"@type":"Organization","name":"Funda\u00e7\u00e3o Wikimedia, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2001-10-31T21:14:01Z","dateModified":"2023-10-03T19:56:42Z","headline":"paradigma computacional baseado em fun\u00e7\u00f5es matem\u00e1ticas, priorizando avalia\u00e7\u00e3o funcional sobre mudan\u00e7a de estado"}</script> </body> </html>