CINXE.COM

隐式编程 - 维基百科,自由的百科全书

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-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-sticky-header-enabled vector-toc-available" lang="zh" dir="ltr"> <head> <meta charset="UTF-8"> <title>隐式编程 - 维基百科,自由的百科全书</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-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-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )zhwikimwclientpreferences=([^;]+)/);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":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"zh", "wgMonthNames":["","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"wgRequestId":"dbc8ed2d-1eb9-4e0e-90a3-9d19b34066ee","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"隐式编程","wgTitle":"隐式编程","wgCurRevisionId":86105033,"wgRevisionId":86105033,"wgArticleId":7014744,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["存在语法高亮错误的页面","编程范式"],"wgPageViewLanguage":"zh","wgPageContentLanguage":"zh","wgPageContentModel":"wikitext","wgRelevantPageName":"隐式编程","wgRelevantArticleId":7014744,"wgUserVariant":"zh","wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{ "pageLanguageCode":"zh","pageLanguageDir":"ltr","pageVariantFallbacks":["zh-hans","zh-hant","zh-cn","zh-tw","zh-hk","zh-sg","zh-mo","zh-my"]},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":10000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q3305965","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.gadget.large-font":"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.pygments":"ready","ext.math.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.edit0","ext.gadget.WikiMiniAtlas","ext.gadget.UnihanTooltips","ext.gadget.Difflink","ext.gadget.pseudonamespace-UI","ext.gadget.SpecialWikitext","ext.gadget.switcher","ext.gadget.VariantAlly","ext.gadget.AdvancedSiteNotices","ext.gadget.hideConversionTab","ext.gadget.ilhpp","ext.gadget.noteTA","ext.gadget.NavFrame","ext.gadget.collapsibleTables", "ext.gadget.scrollUpButton","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"];</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=zh&amp;modules=ext.cite.styles%7Cext.math.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=zh&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=zh&amp;modules=ext.gadget.large-font&amp;only=styles&amp;skin=vector-2022"> <link rel="stylesheet" href="/w/load.php?lang=zh&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.16"> <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="隐式编程 - 维基百科,自由的百科全书"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//zh.m.wikipedia.org/wiki/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" type="application/x-wiki" title="编辑本页" href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;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="Wikipedia (zh)"> <link rel="EditURI" type="application/rsd+xml" href="//zh.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://zh.wikipedia.org/wiki/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh" href="https://zh.wikipedia.org/wiki/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh-Hans" href="https://zh.wikipedia.org/zh-hans/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh-Hans-CN" href="https://zh.wikipedia.org/zh-cn/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh-Hans-MY" href="https://zh.wikipedia.org/zh-my/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh-Hans-SG" href="https://zh.wikipedia.org/zh-sg/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh-Hant" href="https://zh.wikipedia.org/zh-hant/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh-Hant-HK" href="https://zh.wikipedia.org/zh-hk/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh-Hant-MO" href="https://zh.wikipedia.org/zh-mo/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="zh-Hant-TW" href="https://zh.wikipedia.org/zh-tw/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="alternate" hreflang="x-default" href="https://zh.wikipedia.org/wiki/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.zh"> <link rel="alternate" type="application/atom+xml" title="Wikipedia的Atom feed" href="/w/index.php?title=Special:%E6%9C%80%E8%BF%91%E6%9B%B4%E6%94%B9&amp;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-隐式编程 rootpage-隐式编程 skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">跳转到内容</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="站点"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="主菜单" > <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="主菜单" > <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">主菜单</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">主菜单</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">移至侧栏</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">隐藏</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> 导航 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikipedia:%E9%A6%96%E9%A1%B5" title="访问首页​[z]" accesskey="z"><span>首页</span></a></li><li id="n-indexpage" class="mw-list-item"><a href="/wiki/Wikipedia:%E5%88%86%E7%B1%BB%E7%B4%A2%E5%BC%95" title="以分类索引搜寻中文维基百科"><span>分类索引</span></a></li><li id="n-Featured_content" class="mw-list-item"><a href="/wiki/Portal:%E7%89%B9%E8%89%B2%E5%85%A7%E5%AE%B9" title="查看中文维基百科的特色内容"><span>特色内容</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:%E6%96%B0%E8%81%9E%E5%8B%95%E6%85%8B" title="提供当前新闻事件的背景资料"><span>新闻动态</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:%E6%9C%80%E8%BF%91%E6%9B%B4%E6%94%B9" title="列出维基百科中的最近修改​[r]" accesskey="r"><span>最近更改</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2" title="随机载入一个页面​[x]" accesskey="x"><span>随机条目</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Special:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2"><span>特殊页面</span></a></li> </ul> </div> </div> <div id="p-help" class="vector-menu mw-portlet mw-portlet-help" > <div class="vector-menu-heading"> 帮助 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:%E7%9B%AE%E5%BD%95" title="寻求帮助"><span>帮助</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:%E7%A4%BE%E7%BE%A4%E9%A6%96%E9%A1%B5" title="关于本计划、你可以做什么、应该如何做"><span>维基社群</span></a></li><li id="n-policy" class="mw-list-item"><a href="/wiki/Wikipedia:%E6%96%B9%E9%87%9D%E8%88%87%E6%8C%87%E5%BC%95" title="查看维基百科的方针和指引"><span>方针与指引</span></a></li><li id="n-villagepump" class="mw-list-item"><a href="/wiki/Wikipedia:%E4%BA%92%E5%8A%A9%E5%AE%A2%E6%A0%88" title="参与维基百科社群的讨论"><span>互助客栈</span></a></li><li id="n-Information_desk" class="mw-list-item"><a href="/wiki/Wikipedia:%E7%9F%A5%E8%AF%86%E9%97%AE%E7%AD%94" title="解答任何与维基百科无关的问题的地方"><span>知识问答</span></a></li><li id="n-conversion" class="mw-list-item"><a href="/wiki/Wikipedia:%E5%AD%97%E8%AF%8D%E8%BD%AC%E6%8D%A2" title="提出字词转换请求"><span>字词转换</span></a></li><li id="n-IRC" class="mw-list-item"><a href="/wiki/Wikipedia:IRC%E8%81%8A%E5%A4%A9%E9%A2%91%E9%81%93"><span>IRC即时聊天</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikipedia:%E8%81%94%E7%BB%9C%E6%88%91%E4%BB%AC" title="如何联络维基百科"><span>联络我们</span></a></li><li id="n-about" class="mw-list-item"><a href="/wiki/Wikipedia:%E5%85%B3%E4%BA%8E" title="查看维基百科的简介"><span>关于维基百科</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Wikipedia:%E9%A6%96%E9%A1%B5" 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="维基百科" src="/static/images/mobile/copyright/wikipedia-wordmark-zh.svg" style="width: 6.5625em; height: 1.375em;"> <img class="mw-logo-tagline" alt="自由的百科全书" src="/static/images/mobile/copyright/wikipedia-tagline-zh.svg" width="103" height="14" style="width: 6.4375em; height: 0.875em;"> </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/Special:%E6%90%9C%E7%B4%A2" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="搜索维基百科​[f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>搜索</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="搜索维基百科" aria-label="搜索维基百科" autocapitalize="sentences" title="搜索维基百科​[f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:搜索"> </div> <button class="cdx-button cdx-search-input__end-button">搜索</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="个人工具"> <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="外观"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="更改页面字体大小、宽度和颜色的外观" > <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="外观" > <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">外观</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="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=zh.wikipedia.org&amp;uselang=zh" class=""><span>资助维基百科</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=Special:%E5%88%9B%E5%BB%BA%E8%B4%A6%E6%88%B7&amp;returnto=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" title="我们推荐您创建账号并登录,但这不是强制性的" class=""><span>创建账号</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=Special:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95&amp;returnto=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" title="建议你登录,尽管并非必须。​[o]" accesskey="o" class=""><span>登录</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="更多选项" > <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="个人工具" > <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">个人工具</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="用户菜单" > <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="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=zh.wikipedia.org&amp;uselang=zh"><span>资助维基百科</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:%E5%88%9B%E5%BB%BA%E8%B4%A6%E6%88%B7&amp;returnto=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" title="我们推荐您创建账号并登录,但这不是强制性的"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>创建账号</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95&amp;returnto=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" title="建议你登录,尽管并非必须。​[o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>登录</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"> 未登录编辑者的页面 <a href="/wiki/Help:%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8" aria-label="了解有关编辑的更多信息"><span>了解详情</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/Special:%E6%88%91%E7%9A%84%E8%B4%A1%E7%8C%AE" title="来自此IP地址的编辑列表​[y]" accesskey="y"><span>贡献</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:%E6%88%91%E7%9A%84%E8%AE%A8%E8%AE%BA%E9%A1%B5" title="对于来自此IP地址编辑的讨论​[n]" accesskey="n"><span>讨论</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"><!-- CentralNotice --></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="站点"> <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="目录" 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">目录</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">移至侧栏</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">隐藏</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">序言</div> </a> </li> <li id="toc-APL语言家族" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#APL语言家族"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>APL语言家族</span> </div> </a> <button aria-controls="toc-APL语言家族-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>开关APL语言家族子章节</span> </button> <ul id="toc-APL语言家族-sublist" class="vector-toc-list"> <li id="toc-J语言" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#J语言"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>J语言</span> </div> </a> <ul id="toc-J语言-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Dyalog_APL" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Dyalog_APL"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Dyalog APL</span> </div> </a> <ul id="toc-Dyalog_APL-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Unix管道" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Unix管道"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Unix管道</span> </div> </a> <ul id="toc-Unix管道-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Python" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Python"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Python</span> </div> </a> <ul id="toc-Python-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-jq语言" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#jq语言"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>jq语言</span> </div> </a> <ul id="toc-jq语言-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-函数式编程语言" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#函数式编程语言"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>函数式编程语言</span> </div> </a> <ul id="toc-函数式编程语言-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-串接式编程语言" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#串接式编程语言"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>串接式编程语言</span> </div> </a> <ul id="toc-串接式编程语言-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-参见" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#参见"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>参见</span> </div> </a> <ul id="toc-参见-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-注释和引用" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#注释和引用"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>注释和引用</span> </div> </a> <ul id="toc-注释和引用-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-外部链接" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#外部链接"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>外部链接</span> </div> </a> <ul id="toc-外部链接-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="目录" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="目录" > <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="开关目录" > <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">开关目录</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">隐式编程</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="前往另一种语言写成的文章。7种语言可用" > <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-7" 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">7种语言</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Tacitn%C3%AD_programov%C3%A1n%C3%AD" title="Tacitní programování – 捷克语" lang="cs" hreflang="cs" data-title="Tacitní programování" data-language-autonym="Čeština" data-language-local-name="捷克语" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Punktfreie_Programmiersprache" title="Punktfreie Programmiersprache – 德语" lang="de" hreflang="de" data-title="Punktfreie Programmiersprache" data-language-autonym="Deutsch" data-language-local-name="德语" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Tacit_programming" title="Tacit programming – 英语" lang="en" hreflang="en" data-title="Tacit programming" data-language-autonym="English" data-language-local-name="英语" 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_t%C3%A1cita" title="Programación tácita – 西班牙语" lang="es" hreflang="es" data-title="Programación tácita" data-language-autonym="Español" data-language-local-name="西班牙语" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%81%D1%82%D0%BE%D1%87%D0%B5%D1%87%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="Бесточечное программирование – 俄语" lang="ru" hreflang="ru" data-title="Бесточечное программирование" data-language-autonym="Русский" data-language-local-name="俄语" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Tacit_programming" title="Tacit programming – Simple English" lang="en-simple" hreflang="en-simple" data-title="Tacit 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-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D1%9B%D1%83%D1%82%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="Прећутно програмирање – 塞尔维亚语" lang="sr" hreflang="sr" data-title="Прећутно програмирање" data-language-autonym="Српски / srpski" data-language-local-name="塞尔维亚语" class="interlanguage-link-target"><span>Српски / srpski</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/Q3305965#sitelinks-wikipedia" title="编辑跨语言链接" class="wbc-editpage">编辑链接</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="命名空间"> <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/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" title="浏览条目正文​[c]" accesskey="c"><span>条目</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Talk:%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;redlink=1" rel="discussion" class="new" title="关于此页面的讨论(页面不存在)​[t]" accesskey="t"><span>讨论</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown " > <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="更改语言变体" > <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">不转换</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-varlang-0" class="selected ca-variants-zh mw-list-item"><a href="/zh/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh" hreflang="zh"><span>不转换</span></a></li><li id="ca-varlang-1" class="ca-variants-zh-Hans mw-list-item"><a href="/zh-hans/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh-Hans" hreflang="zh-Hans"><span>简体</span></a></li><li id="ca-varlang-2" class="ca-variants-zh-Hant mw-list-item"><a href="/zh-hant/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh-Hant" hreflang="zh-Hant"><span>繁體</span></a></li><li id="ca-varlang-3" class="ca-variants-zh-Hans-CN mw-list-item"><a href="/zh-cn/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh-Hans-CN" hreflang="zh-Hans-CN"><span>大陆简体</span></a></li><li id="ca-varlang-4" class="ca-variants-zh-Hant-HK mw-list-item"><a href="/zh-hk/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh-Hant-HK" hreflang="zh-Hant-HK"><span>香港繁體</span></a></li><li id="ca-varlang-5" class="ca-variants-zh-Hant-MO mw-list-item"><a href="/zh-mo/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh-Hant-MO" hreflang="zh-Hant-MO"><span>澳門繁體</span></a></li><li id="ca-varlang-6" class="ca-variants-zh-Hans-MY mw-list-item"><a href="/zh-my/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh-Hans-MY" hreflang="zh-Hans-MY"><span>大马简体</span></a></li><li id="ca-varlang-7" class="ca-variants-zh-Hans-SG mw-list-item"><a href="/zh-sg/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh-Hans-SG" hreflang="zh-Hans-SG"><span>新加坡简体</span></a></li><li id="ca-varlang-8" class="ca-variants-zh-Hant-TW mw-list-item"><a href="/zh-tw/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" lang="zh-Hant-TW" hreflang="zh-Hant-TW"><span>臺灣正體</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="查看"> <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/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"><span>阅读</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit" title="编辑该页面​[e]" accesskey="e"><span>编辑</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=history" title="本页面的早前版本。​[h]" accesskey="h"><span>查看历史</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="页面工具"> <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="工具" > <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">工具</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">工具</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">移至侧栏</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">隐藏</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="更多选项" > <div class="vector-menu-heading"> 操作 </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/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B"><span>阅读</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit" title="编辑该页面​[e]" accesskey="e"><span>编辑</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=history"><span>查看历史</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> 常规 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:%E9%93%BE%E5%85%A5%E9%A1%B5%E9%9D%A2/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" title="列出所有与本页相链的页面​[j]" accesskey="j"><span>链入页面</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:%E9%93%BE%E5%87%BA%E6%9B%B4%E6%94%B9/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B" rel="nofollow" title="页面链出所有页面的更改​[k]" accesskey="k"><span>相关更改</span></a></li><li id="t-upload" class="mw-list-item"><a href="//zh.wikipedia.org/wiki/Project:上传" title="上传图像或多媒体文件​[u]" accesskey="u"><span>上传文件</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;oldid=86105033" title="此页面该修订版本的固定链接"><span>固定链接</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=info" title="关于此页面的更多信息"><span>页面信息</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:%E5%BC%95%E7%94%A8%E6%AD%A4%E9%A1%B5%E9%9D%A2&amp;page=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;id=86105033&amp;wpFormIdentifier=titleform" title="有关如何引用此页面的信息"><span>引用此页</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:URL%E7%BC%A9%E7%9F%AD%E7%A8%8B%E5%BA%8F&amp;url=https%3A%2F%2Fzh.wikipedia.org%2Fwiki%2F%25E9%259A%2590%25E5%25BC%258F%25E7%25BC%2596%25E7%25A8%258B"><span>获取短链接</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fzh.wikipedia.org%2Fwiki%2F%25E9%259A%2590%25E5%25BC%258F%25E7%25BC%2596%25E7%25A8%258B"><span>下载二维码</span></a></li> </ul> </div> </div> <div id="p-electronpdfservice-sidebar-portlet-heading" class="vector-menu mw-portlet mw-portlet-electronpdfservice-sidebar-portlet-heading" > <div class="vector-menu-heading"> 打印/导出 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="electron-print_pdf" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=show-download-screen"><span>下载为PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="本页面的可打印版本​[p]" accesskey="p"><span>打印页面</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"> 在其他项目中 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q3305965" title="链接到连接的数据仓库项目​[g]" accesskey="g"><span>维基数据项目</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="页面工具"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="外观"> <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">外观</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">移至侧栏</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">隐藏</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 id="mw-indicator-noteTA-f3e2a619" class="mw-indicator"><div class="mw-parser-output"><span class="skin-invert" typeof="mw:File"><span title="本页使用了标题或全文手工转换"><img alt="本页使用了标题或全文手工转换" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png" decoding="async" width="35" height="22" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/53px-Zh_conversion_icon_m.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/70px-Zh_conversion_icon_m.svg.png 2x" data-file-width="32" data-file-height="20" /></span></span></div></div> </div> <div id="siteSub" class="noprint">维基百科,自由的百科全书</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="zh" dir="ltr"><div id="noteTA-f3e2a619" class="noteTA"><div class="noteTA-group"><div data-noteta-group-source="module" data-noteta-group="IT"></div></div></div> <p><b>隐式</b>(<b>tacit</b>)编程<sup id="cite_ref-train_1-0" class="reference"><a href="#cite_note-train-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup>,或称为<a href="/wiki/%E5%87%BD%E6%95%B0%E7%BA%A7%E7%BC%96%E7%A8%8B" title="函数级编程">函数级编程</a>,是一种<a href="/wiki/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B" title="编程范型">编程范型</a>,也叫做<b>无点</b>(point-free)样式。其中函数定义不标示所要运算的被称为“<a href="/wiki/%E7%82%B9" title="点">点</a>”的<a href="/wiki/%E5%8F%82%E6%95%B0_(%E7%A8%8B%E5%BC%8F%E8%AE%BE%E8%AE%A1)" class="mw-redirect" title="参数 (程式设计)">参数</a>,转而函数定义只是其他函数的<a href="/wiki/%E5%A4%8D%E5%90%88%E5%87%BD%E6%95%B0" title="复合函数">复合</a>,比如那些操纵参数的<a href="/wiki/%E7%BB%84%E5%90%88%E5%AD%90%E9%80%BB%E8%BE%91" title="组合子逻辑">组合子</a>。隐式编程有着理论价值,因为严格的使用复合导致程序适配于<span class="ilh-all" data-orig-title="等式逻辑" data-lang-code="en" data-lang-name="英语" data-foreign-title="Equational logic"><span class="ilh-page"><a href="/w/index.php?title=%E7%AD%89%E5%BC%8F%E9%80%BB%E8%BE%91&amp;action=edit&amp;redlink=1" class="new" title="等式逻辑(页面不存在)">等式推理</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Equational_logic" class="extiw" title="en:Equational logic"><span lang="en" dir="auto">Equational logic</span></a></span><span class="ilh-paren">)</span></span></span><sup id="cite_ref-cunha2005_2-0" class="reference"><a href="#cite_note-cunha2005-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup>。隐式编程是特定<a href="/wiki/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80" title="编程语言">编程语言</a>的天然样式,这包括了<a href="/wiki/APL%E8%AF%AD%E8%A8%80" class="mw-redirect" title="APL语言">APL</a>的一些现代实现和方言<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup>,和<a href="/wiki/%E4%B8%B2%E6%8E%A5%E5%BC%8F%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80" title="串接式编程语言">串接式语言</a>比如<a href="/wiki/Forth" title="Forth">Forth</a>。由于缺少参数命名,认为这种风格导致了不必要的晦涩难懂的人,给它起了个<a href="/wiki/%E7%BB%B0%E5%8F%B7" class="mw-redirect" title="绰号">绰号</a>叫做“无意义”(pointless)风格<sup id="cite_ref-cunha2005_2-1" class="reference"><a href="#cite_note-cunha2005-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup>。 </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="APL语言家族"><span id="APL.E8.AF.AD.E8.A8.80.E5.AE.B6.E6.97.8F"></span>APL语言家族</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=1" title="编辑章节:APL语言家族"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>在一些<a href="/wiki/APL%E8%AF%AD%E8%A8%80" class="mw-redirect" title="APL语言">APL</a>方言中,允许将函数组合入服从几个规则的“列车”(train);这允许建立复杂的派生函数,而不需要显式指定任何参数;实现了列车的APL方言包括:<tt><a href="/wiki/J%E8%AF%AD%E8%A8%80" title="J语言">J</a></tt>语言、Dyalog APL、dzaima/APL、ngn/apl和NARS2000<sup id="cite_ref-train_1-1" class="reference"><a href="#cite_note-train-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup>。 </p> <div class="mw-heading mw-heading3"><h3 id="J语言"><span id="J.E8.AF.AD.E8.A8.80"></span><tt>J</tt>语言</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=2" title="编辑章节:J语言"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>在<tt><a href="/wiki/J%E8%AF%AD%E8%A8%80" title="J语言">J</a></tt>语言中,下列在一个数值的列表(<a href="/wiki/%E9%99%A3%E5%88%97" class="mw-redirect" title="陣列">阵列</a>)上计算平均值的函数采用了一种无参数样式代码: </p> <div class="mw-highlight mw-highlight-lang-j mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">avg</span><span class="o">=:</span><span class="w"> </span><span class="o">+/</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="o">#</span> </pre></div> <p><code>+/</code>通过将求和(<code>+</code>)插入(<code>/</code>)到一个阵列的所有元素之间来计算它们的合计值。<code>#</code>总计一个阵列的元素数目。<code>%</code>用<code>+/</code>这个阵列的结果值除以<code>#</code>这个阵列的结果值。 </p><p><a href="/wiki/%E6%AC%A7%E6%8B%89%E5%85%AC%E5%BC%8F" title="欧拉公式">欧拉公式</a><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 e^{ix}=\cos x+i\sin x}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msup> <mi>e</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> <mi>x</mi> </mrow> </msup> <mo>=</mo> <mi>cos</mi> <mo>&#x2061;<!-- ⁡ --></mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mi>sin</mi> <mo>&#x2061;<!-- ⁡ --></mo> <mi>x</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle e^{ix}=\cos x+i\sin x}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/4907c0489ab08ce550c7700a1587d4634801dff8" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:19.352ex; height:2.843ex;" alt="{\displaystyle e^{ix}=\cos x+i\sin x}"></span>可隐式表达为: </p> <div class="mw-highlight mw-highlight-lang-j mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">cos</span><span class="w"> </span><span class="o">=:</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="nv">o</span><span class="o">.</span><span class="w"> </span><span class="o">]</span> <span class="nv">sin</span><span class="w"> </span><span class="o">=:</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="nv">o</span><span class="o">.</span><span class="w"> </span><span class="o">]</span> <span class="nv">Euler</span><span class="w"> </span><span class="o">=:</span><span class="w"> </span><span class="o">^@</span><span class="nv">j</span><span class="o">.</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">cos</span><span class="w"> </span><span class="nv">j</span><span class="o">.</span><span class="w"> </span><span class="nv">sin</span> </pre></div> <p>这里定义的函数<code>Euler</code>在任何输入值上都恒等于<code>1</code>,即这个等式永远为真。其中用到了一些原语(primitive)函数:<code>=:</code>表示全局定义;<code>o.</code>表示<a href="/wiki/%E5%9C%93%E5%87%BD%E6%95%B8" class="mw-redirect" title="圓函數">圆函数</a>,由左侧名词参数选择具体的函数;<code>]</code>不变动的返回右侧名词参数;<code>^</code>的一元定义为指数函数;<code>j.</code>的一元定义为<a href="/wiki/%E8%99%9A%E6%95%B0%E5%8D%95%E4%BD%8D" class="mw-redirect" title="虚数单位">虚数单位</a><code>0j1</code>乘以右侧参数<code>y</code>,而它的二元定义为<code>x + 0j1*y</code>,即组合左侧参数<code>x</code>和右侧参数<code>y</code>成为<a href="/wiki/%E5%A4%8D%E6%95%B0_(%E6%95%B0%E5%AD%A6)" title="复数 (数学)">复数</a>,而二者分别是其实部和虚部;<code>@</code>表示数学<a href="/wiki/%E5%87%BD%E6%95%B0%E5%A4%8D%E5%90%88" class="mw-redirect" title="函数复合">函数复合</a>;<code>=</code>是<a href="/wiki/%E7%AD%89%E4%BA%8E" class="mw-redirect" title="等于">等于</a><a href="/wiki/%E5%B8%83%E5%B0%94" class="mw-disambig" title="布尔">布尔</a>运算,两侧参数相等返回<code>1</code>而不等返回<code>0</code>。 </p> <div class="mw-heading mw-heading3"><h3 id="Dyalog_APL">Dyalog APL</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=3" title="编辑章节:Dyalog APL"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>上述相同的隐式计算用<a href="/wiki/APL%E8%AF%AD%E8%A8%80" class="mw-redirect" title="APL语言">APL</a>的现代版本Dyalog APL<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup>表达为: </p> <div class="mw-highlight mw-highlight-lang-apl mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">avg</span><span class="w"> </span><span class="kd">←</span><span class="w"> </span><span class="o">+</span><span class="na">⌿</span><span class="w"> </span><span class="o">÷</span><span class="w"> </span><span class="o">≢</span> <span class="nv">cos</span><span class="w"> </span><span class="kd">←</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="o">○</span><span class="w"> </span><span class="o">⊢</span> <span class="nv">sin</span><span class="w"> </span><span class="kd">←</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="o">○</span><span class="w"> </span><span class="o">⊢</span> <span class="nv">j</span><span class="w"> </span><span class="kd">←</span><span class="w"> </span><span class="kt">{</span><span class="bp">⍺</span><span class="kd">←</span><span class="m">0</span><span class="w"> </span><span class="p">⋄</span><span class="w"> </span><span class="bp">⍺</span><span class="o">+</span><span class="m">0j1</span><span class="o">×</span><span class="bp">⍵</span><span class="kt">}</span><span class="w"> </span><span class="c1">⍝ j函数的定义不是隐式的</span> <span class="nv">Euler</span><span class="w"> </span><span class="kd">←</span><span class="w"> </span><span class="o">*</span><span class="na">∘</span><span class="nv">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">cos</span><span class="w"> </span><span class="nv">j</span><span class="w"> </span><span class="nv">sin</span> </pre></div> <p>这里采用<span class="ilh-all" data-orig-title="直接函数" data-lang-code="en" data-lang-name="英语" data-foreign-title="Direct function"><span class="ilh-page"><a href="/w/index.php?title=%E7%9B%B4%E6%8E%A5%E5%87%BD%E6%95%B0&amp;action=edit&amp;redlink=1" class="new" title="直接函数(页面不存在)">直接函数</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Direct_function" class="extiw" title="en:Direct function"><span lang="en" dir="auto">Direct function</span></a></span><span class="ilh-paren">)</span></span></span>定义了<code>j</code>函数,其中在<code>{</code>与<code>}</code>之间由<code>⋄</code>分隔的是<a href="/wiki/%E5%8D%AB%E8%AF%AD%E5%8F%A5" title="卫语句">守卫</a>的表达式序列(这里只有表达式),<code>⍺</code>指示左参数而<code>⍵</code>指示右参数,<code>⍺←</code>指示一元定义需要的缺省左参数。 </p> <div class="mw-heading mw-heading2"><h2 id="Unix管道"><span id="Unix.E7.AE.A1.E9.81.93"></span>Unix管道</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=4" title="编辑章节:Unix管道"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r85100532">.mw-parser-output .hatnote{font-size:small}.mw-parser-output div.hatnote{padding-left:2em;margin-bottom:0.8em;margin-top:0.8em}.mw-parser-output .hatnote-notice-img::after{content:"\202f \202f \202f \202f "}.mw-parser-output .hatnote-notice-img-small::after{content:"\202f \202f "}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}body.skin-minerva .mw-parser-output .hatnote-notice-img,body.skin-minerva .mw-parser-output .hatnote-notice-img-small{display:none}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">主条目:<a href="/wiki/%E7%AE%A1%E9%81%93_(Unix)" title="管道 (Unix)">管道 (Unix)</a></div> <p>在<a href="/wiki/Unix" class="mw-redirect" title="Unix">Unix</a> <a href="/wiki/Unix_shell" title="Unix shell">shell</a><a href="/wiki/%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80" title="脚本语言">脚本</a>中,命令是从<a href="/wiki/%E6%A8%99%E6%BA%96%E4%B8%B2%E6%B5%81" title="標準串流">标准输入</a>接收数据并发送结果至<a href="/wiki/%E6%A8%99%E6%BA%96%E4%B8%B2%E6%B5%81" title="標準串流">标准输出</a>的<span class="ilh-all" data-orig-title="过滤器 (软件)" data-lang-code="en" data-lang-name="英语" data-foreign-title="Filter (software)"><span class="ilh-page"><a href="/w/index.php?title=%E8%BF%87%E6%BB%A4%E5%99%A8_(%E8%BD%AF%E4%BB%B6)&amp;action=edit&amp;redlink=1" class="new" title="过滤器 (软件)(页面不存在)">过滤器</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Filter_(software)" class="extiw" title="en:Filter (software)"><span lang="en" dir="auto">Filter (software)</span></a></span><span class="ilh-paren">)</span></span></span>。例如: </p> <div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre><span></span>sort<span class="w"> </span><span class="p">|</span><span class="w"> </span>uniq<span class="w"> </span>-c<span class="w"> </span><span class="p">|</span><span class="w"> </span>sort<span class="w"> </span>-rn </pre></div> <p>可以视为一个隐式或无点复合,它返回它的每个参数的计数和这些参数,并按照这个计数的递减次序来排序。命令<code>sort</code>和<code>uniq</code>相当于函数,而<code>-c</code>和<code>-rn</code>是控制这些函数的选项,但是不提及参数。<a href="/wiki/%E7%AE%A1%E9%81%93_(%E8%BD%AF%E4%BB%B6)" title="管道 (软件)">管道</a><code>|</code>相当于函数复合算子。下面是其用例: </p> <div class="mw-highlight mw-highlight-lang-console mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">$ </span><span class="nb">echo</span><span class="w"> </span><span class="s1">&#39;2 4 3 1 3 12 2&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>xargs<span class="w"> </span>-n1<span class="w"> </span><span class="p">|</span><span class="w"> </span>sort<span class="w"> </span><span class="p">|</span><span class="w"> </span>uniq<span class="w"> </span>-c<span class="w"> </span><span class="p">|</span><span class="w"> </span>sort<span class="w"> </span>-rn <span class="go"> 2 3</span> <span class="go"> 2 2</span> <span class="go"> 1 4</span> <span class="go"> 1 12</span> <span class="go"> 1 1</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Python">Python</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=5" title="编辑章节:Python"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>如下<a href="/wiki/Python%E8%AF%AD%E8%A8%80" class="mw-redirect" title="Python语言">Python</a>代码是对应上节示例中Unix管道中命令的函数定义和一序列的运算: </p> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="k">def</span> <span class="nf">sort</span><span class="p">(</span><span class="n">argv</span><span class="p">):</span> <span class="k">return</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">argv</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="nb">str</span><span class="p">)</span> <span class="k">def</span> <span class="nf">uniq_c</span><span class="p">(</span><span class="n">argv</span><span class="p">):</span> <span class="n">counts</span> <span class="o">=</span> <span class="p">{}</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">argv</span><span class="p">:</span> <span class="n">counts</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)]</span> <span class="o">=</span> <span class="n">counts</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> <span class="k">return</span> <span class="p">[(</span><span class="n">v</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">k</span><span class="p">))</span> <span class="k">for</span> <span class="n">k</span> <span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">counts</span><span class="o">.</span><span class="n">items</span><span class="p">()]</span> <span class="k">def</span> <span class="nf">sort_rn</span><span class="p">(</span><span class="n">argv</span><span class="p">):</span> <span class="n">sort_rk2</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">argv</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span><span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">return</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">sort_rk2</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="n">a</span> <span class="o">=</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">2</span><span class="p">]</span> <span class="n">b</span> <span class="o">=</span> <span class="n">sort_rn</span><span class="p">(</span><span class="n">uniq_c</span><span class="p">(</span><span class="n">sort</span><span class="p">(</span><span class="n">a</span><span class="p">)))</span> </pre></div> <p>这里的<code>sort()</code>由于<code>uniq_c()</code>所采用的实现方法不再依赖于它而没有存在必要,只是为了与上节Unix示例保持一致。 </p><p>基于标准库的<a href="/wiki/%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B" title="函数式编程">函数式编程</a>工具<code>functools</code>中的<span class="ilh-all" data-orig-title="部份应用" data-lang-code="en" data-lang-name="英语" data-foreign-title="Partial application"><span class="ilh-page"><a href="/w/index.php?title=%E9%83%A8%E4%BB%BD%E5%BA%94%E7%94%A8&amp;action=edit&amp;redlink=1" class="new" title="部份应用(页面不存在)">部份应用</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Partial_application" class="extiw" title="en:Partial application"><span lang="en" dir="auto">Partial application</span></a></span><span class="ilh-paren">)</span></span></span>函数<code>partial()</code>和<a href="/wiki/Fold_(%E9%AB%98%E9%98%B6%E5%87%BD%E6%95%B0)" title="Fold (高阶函数)">归约</a>函数<code>reduce()</code>,这个例子可以写为无点样式的没有参数的一序列函数的复合<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup>: </p> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">partial</span><span class="p">,</span> <span class="n">reduce</span> <span class="k">def</span> <span class="nf">compose</span><span class="p">(</span><span class="o">*</span><span class="n">func_list</span><span class="p">):</span> <span class="k">return</span> <span class="n">partial</span><span class="p">(</span><span class="n">reduce</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">argv</span><span class="p">,</span><span class="n">func</span><span class="p">:</span><span class="n">func</span><span class="p">(</span><span class="n">argv</span><span class="p">),</span> <span class="n">func_list</span><span class="p">)</span> <span class="n">pipeline</span> <span class="o">=</span> <span class="n">compose</span><span class="p">(</span><span class="n">sort</span><span class="p">,</span> <span class="n">uniq_c</span><span class="p">,</span> <span class="n">sort_rn</span><span class="p">)</span> <span class="n">c</span> <span class="o">=</span> <span class="n">pipeline</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">assert</span> <span class="n">b</span> <span class="o">==</span> <span class="n">c</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="jq语言"><span id="jq.E8.AF.AD.E8.A8.80"></span>jq语言</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=6" title="编辑章节:jq语言"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Jq%E8%AF%AD%E8%A8%80" title="Jq语言">jq</a>是面向<a href="/wiki/JSON" title="JSON">JSON</a>的<a href="/wiki/%E7%BA%AF%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B" title="纯函数式编程">纯函数式编程</a>语言,它使用<code>|</code>符号来连接过滤器形成流水线。例如: </p> <div class="mw-highlight mw-highlight-lang-console mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">$ </span><span class="nb">echo</span><span class="w"> </span><span class="s1">&#39;[1,2]&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>jq<span class="w"> </span><span class="s1">&#39;add/length&#39;</span> <span class="go">1.5</span> <span class="gp">$ </span>jq<span class="w"> </span>-n<span class="w"> </span><span class="s1">&#39;[1,2] | add/length&#39;</span> <span class="go">1.5</span> </pre></div> <p>这里jq内的JSON阵列<code>[1,2]</code>是求值为阵列的一个jq过滤器。尽管类似于Unix流水线,jq流水线允许将到来数据,如同并行的发送到在<code>|</code>右手端的多于一个接收者。 </p><p>上述Python章节中例子,在jq中等价的无点风格定义为: </p> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="k">def</span> <span class="nf">uniq_c</span><span class="p">:</span> <span class="nb">map</span><span class="p">(</span><span class="n">tostring</span><span class="p">)</span> <span class="o">|</span> <span class="n">reduce</span> <span class="o">.</span><span class="p">[]</span> <span class="k">as</span> <span class="err">$</span><span class="n">i</span> <span class="p">({};</span> <span class="o">.</span><span class="p">[</span><span class="err">$</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="o">|</span> <span class="n">to_entries</span> <span class="o">|</span> <span class="nb">map</span><span class="p">([</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="o">.</span><span class="n">key</span><span class="p">]);</span> <span class="k">def</span> <span class="nf">sort_nr</span><span class="p">:</span> <span class="n">sort</span> <span class="o">|</span> <span class="n">reverse</span> <span class="o">|</span> <span class="nb">map</span><span class="p">([</span><span class="o">.</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="p">(</span><span class="o">.</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">|</span><span class="n">tonumber</span><span class="p">)]);</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">2</span><span class="p">]</span> <span class="o">|</span> <span class="n">sort</span> <span class="o">|</span> <span class="n">uniq_c</span> <span class="o">|</span> <span class="n">sort_nr</span> </pre></div> <p>将这段代码保存入<code>pipeline.jq</code>文件中,下面是其执行结果: </p> <div class="mw-highlight mw-highlight-lang-console mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">$ </span>jq<span class="w"> </span>-nc<span class="w"> </span>-f<span class="w"> </span>./pipeline.jq<span class="w"> </span> <span class="go">[[2,3],[2,2],[1,4],[1,12],[1,1]]</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="函数式编程语言"><span id=".E5.87.BD.E6.95.B0.E5.BC.8F.E7.BC.96.E7.A8.8B.E8.AF.AD.E8.A8.80"></span>函数式编程语言</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=7" title="编辑章节:函数式编程语言"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>下面是采用<a href="/wiki/%E7%BA%AF%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B" title="纯函数式编程">纯函数式编程</a>语言<a href="/wiki/Haskell" title="Haskell">Haskell</a>的一个简单例子,它在一个列表上作合计的函数。编程者可以使用“有点”(pointed)也称为<a href="/wiki/%E5%80%BC%E7%BA%A7%E7%BC%96%E7%A8%8B" class="mw-redirect" title="值级编程">值级编程</a>的方法,而递归的定义这个合计为: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">sum</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="kt">:</span><span class="n">xs</span><span class="p">)</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">sum</span><span class="w"> </span><span class="n">xs</span> <span class="nf">sum</span><span class="w"> </span><span class="kt">[]</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="mi">0</span> </pre></div> <p>这是一种<a href="/wiki/Fold_(%E9%AB%98%E9%98%B6%E5%87%BD%E6%95%B0)" title="Fold (高阶函数)">折叠</a>(fold)运算,编程者可以将它改写为: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">sum</span><span class="w"> </span><span class="n">xs</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="n">foldr</span><span class="w"> </span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">xs</span> </pre></div> <p>这里的参数是不必须的,进而将它改写成如下“无点”也称为<a href="/wiki/%E5%87%BD%E6%95%B0%E7%BA%A7%E7%BC%96%E7%A8%8B" title="函数级编程">函数级编程</a>的样式: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">sum</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="n">foldr</span><span class="w"> </span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="mi">0</span> </pre></div> <p>Haskell拥有<span class="ilh-all" data-orig-title="函数复合 (计算机科学)" data-lang-code="en" data-lang-name="英语" data-foreign-title="Function composition (computer science)"><span class="ilh-page"><a href="/w/index.php?title=%E5%87%BD%E6%95%B0%E5%A4%8D%E5%90%88_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6)&amp;action=edit&amp;redlink=1" class="new" title="函数复合 (计算机科学)(页面不存在)">函数复合</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Function_composition_(computer_science)" class="extiw" title="en:Function composition (computer science)"><span lang="en" dir="auto">Function composition (computer science)</span></a></span><span class="ilh-paren">)</span></span></span><a href="/wiki/%E7%AE%97%E5%AD%90_(%E7%BC%96%E7%A8%8B)" class="mw-redirect" title="算子 (编程)">算子</a>: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="ow">::</span><span class="w"> </span><span class="p">(</span><span class="n">b</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">c</span><span class="p">)</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">c</span> <span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="p">(</span><span class="n">g</span><span class="w"> </span><span class="n">x</span><span class="p">)</span> </pre></div> <p>它有如下性质<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup>: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">f</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="n">f</span><span class="p">(</span><span class="n">g</span><span class="p">)</span> <span class="nf">f</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="n">g</span> <span class="nf">f</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="p">(</span><span class="n">f</span><span class="w"> </span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="n">g</span><span class="w"> </span> <span class="nf">f</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="w"> </span><span class="n">g</span><span class="p">)</span><span class="w"> </span><span class="n">f</span> </pre></div> <p>这里的<code>(f .)</code>和<code>(. g)</code>,分别称为<code>.</code>的左“节”(section)和右“节”,是对这个中缀算子的左侧和右侧<span class="ilh-all" data-orig-title="部份应用" data-lang-code="en" data-lang-name="英语" data-foreign-title="Partial application"><span class="ilh-page"><a href="/w/index.php?title=%E9%83%A8%E4%BB%BD%E5%BA%94%E7%94%A8&amp;action=edit&amp;redlink=1" class="new" title="部份应用(页面不存在)">部份应用</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Partial_application" class="extiw" title="en:Partial application"><span lang="en" dir="auto">Partial application</span></a></span><span class="ilh-paren">)</span></span></span>。<code>(f .) = ((.) f)</code>,本文采用后者形式。正如前面所说,在“无点”中的<a href="/wiki/%E7%82%B9" title="点">点</a>(point)指称参数,而非不使用<a href="/wiki/%E4%B9%98%E6%B3%95" title="乘法">点号</a>(dot),这是常见误解<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup>。 </p><p>下面的例子展示其用法,给出一个函数<code>p</code>的定义: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">p</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="n">z</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="p">(</span><span class="n">g</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="n">z</span> </pre></div> <p>经过如下推导: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">p</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">z</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="p">(</span><span class="n">g</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="n">z</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">z</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">f</span><span class="w"> </span><span class="p">((</span><span class="n">g</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="n">y</span><span class="p">))</span><span class="w"> </span><span class="n">z</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="p">((</span><span class="n">g</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="n">y</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">f</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="n">g</span><span class="w"> </span><span class="n">x</span><span class="p">))</span><span class="w"> </span><span class="n">y</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="n">g</span><span class="w"> </span><span class="n">x</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="n">f</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="n">g</span><span class="w"> </span><span class="n">x</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="n">f</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">g</span><span class="p">)</span><span class="w"> </span><span class="n">x</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="n">f</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">g</span> </pre></div> <p>它可以归约成无点的等价定义: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">p</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="n">f</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">g</span> </pre></div> <p>下面是一个复杂一些的例子<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup>,这里的<code>mf</code>是一个先做<a href="/wiki/Map_(%E9%AB%98%E9%98%B6%E5%87%BD%E6%95%B0)" title="Map (高阶函数)">映射</a>(map)再加<a href="/wiki/Filter_(%E9%AB%98%E9%98%B6%E5%87%BD%E6%95%B0)" title="Filter (高阶函数)">过滤器</a>(filter)的函数,它接受一个列表<code>list</code>,向它应用一个函数<code>operator</code>,接着基于一个准则<code>criteria</code>来过滤元素: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">mf</span><span class="w"> </span><span class="n">criteria</span><span class="w"> </span><span class="n">operator</span><span class="w"> </span><span class="n">list</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="n">filter</span><span class="w"> </span><span class="n">criteria</span><span class="w"> </span><span class="p">(</span><span class="n">map</span><span class="w"> </span><span class="n">operator</span><span class="w"> </span><span class="n">list</span><span class="p">)</span> </pre></div> <p>经过如下推导: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">mf</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">z</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">(</span><span class="n">map</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="n">z</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">z</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">((</span><span class="n">map</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="n">z</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">z</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="n">map</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="n">z</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="n">map</span><span class="w"> </span><span class="n">y</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="p">))</span><span class="w"> </span><span class="p">(</span><span class="n">map</span><span class="w"> </span><span class="n">y</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="nf">\</span><span class="n">y</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="p">))</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">map</span><span class="w"> </span><span class="n">y</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="p">))</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">map</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="w"> </span><span class="n">map</span><span class="p">)</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="p">))</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="w"> </span><span class="n">map</span><span class="p">)</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">filter</span><span class="w"> </span><span class="n">x</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="nf">\</span><span class="n">x</span><span class="w"> </span><span class="ow">-&gt;</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="w"> </span><span class="n">map</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">filter</span><span class="p">)</span><span class="w"> </span><span class="n">x</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="w"> </span><span class="n">map</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">((</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">filter</span><span class="p">)</span> <span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="w"> </span><span class="n">map</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">filter</span> </pre></div> <p><code>mf</code>可以表达为无点样式: </p> <div class="mw-highlight mw-highlight-lang-haskell mw-content-ltr" dir="ltr"><pre><span></span><span class="nf">mf</span><span class="w"> </span><span class="ow">=</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="w"> </span><span class="n">map</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="o">.</span><span class="p">)</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="n">filter</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="串接式编程语言"><span id=".E4.B8.B2.E6.8E.A5.E5.BC.8F.E7.BC.96.E7.A8.8B.E8.AF.AD.E8.A8.80"></span>串接式编程语言</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=8" title="编辑章节:串接式编程语言"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>在<a href="/wiki/%E4%B8%B2%E6%8E%A5%E5%BC%8F%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80" title="串接式编程语言">串接式编程语言</a>和<a href="/wiki/%E9%9D%A2%E5%90%91%E5%A0%86%E6%A0%88%E7%BC%96%E7%A8%8B" title="面向堆栈编程">面向堆栈编程</a>语言中,无点方法也很常用。例如,计算<a href="/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0" title="斐波那契数">斐波那契数</a>的过程,在<a href="/wiki/Unix" class="mw-redirect" title="Unix">Unix</a>的<a href="/wiki/Dc_(%E7%A8%8B%E5%BA%8F)" title="Dc (程序)">dc</a>命令中可实现为: </p> <div class="mw-highlight mw-content-ltr" dir="ltr"><pre>[d1&lt;G]sF [d 1- lFx r 2- lFx +]sG lFx</pre></div> <p>下面是其用例: </p> <div class="mw-highlight mw-highlight-lang-console mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">$ </span><span class="nb">echo</span><span class="w"> </span><span class="m">7</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>dc<span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;? [d1&lt;G]sF [d 1- lFx r 2- lFx +]sG lFx p&#39;</span> <span class="go">13</span> </pre></div> <p>在<a href="/wiki/Factor%E8%AF%AD%E8%A8%80" title="Factor语言">Factor</a>中可与其等价的实现为<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup>: </p> <div class="mw-highlight mw-highlight-lang-factor mw-content-ltr" dir="ltr"><pre><span></span><span class="k">:</span><span class="w"> </span><span class="nf">fib</span><span class="w"> </span><span class="nf">(</span><span class="w"> </span><span class="nv">n</span><span class="w"> </span><span class="nf">--</span><span class="w"> </span><span class="nv">Fn</span><span class="w"> </span><span class="nf">)</span> <span class="w"> </span><span class="nb">dup</span><span class="w"> </span><span class="m">1 </span><span class="nb">&gt;</span><span class="w"> </span>[ <span class="w"> </span>[<span class="w"> </span><span class="m">1 </span><span class="nb">-</span><span class="w"> </span>fib<span class="w"> </span>]<span class="w"> </span>[<span class="w"> </span><span class="m">2 </span><span class="nb">-</span><span class="w"> </span>fib<span class="w"> </span>]<span class="w"> </span><span class="nb">bi</span><span class="w"> </span><span class="nb">+</span> <span class="w"> </span>]<span class="w"> </span><span class="nb">when</span><span class="w"> </span><span class="k">;</span> </pre></div> <p>在这两个例子中,递归调用函数的参数在堆栈中而没有被显式的命名。 </p> <div class="mw-heading mw-heading2"><h2 id="参见"><span id=".E5.8F.82.E8.A7.81"></span>参见</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=9" title="编辑章节:参见"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/%E7%BB%84%E5%90%88%E5%AD%90%E9%80%BB%E8%BE%91" title="组合子逻辑">组合子逻辑</a></li> <li><a href="/wiki/%E4%B8%B2%E6%8E%A5%E5%BC%8F%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80" title="串接式编程语言">串接式编程语言</a></li> <li><a href="/wiki/%E5%87%BD%E6%95%B0%E7%BA%A7%E7%BC%96%E7%A8%8B" title="函数级编程">函数级编程</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="注释和引用"><span id=".E6.B3.A8.E9.87.8A.E5.92.8C.E5.BC.95.E7.94.A8"></span>注释和引用</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=10" title="编辑章节:注释和引用"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="reflist columns references-column-count references-column-count-2" style="-moz-column-count: 2; -webkit-column-count: 2; column-count: 2; list-style-type: decimal;"> <ol class="references"> <li id="cite_note-train-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-train_1-0"><sup><b>1.0</b></sup></a> <a href="#cite_ref-train_1-1"><sup><b>1.1</b></sup></a></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20220720180701/https://aplwiki.com/wiki/Tacit_programming">Tacit programming</a>. <span class="reference-accessdate"> &#91;<span class="nowrap">2022-06-11</span>&#93;</span>. (<a rel="nofollow" class="external text" href="https://aplwiki.com/wiki/Tacit_programming">原始内容</a>存档于2022-07-20).</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;rft.btitle=Tacit+programming&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Faplwiki.com%2Fwiki%2FTacit_programming&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span></span> </li> <li id="cite_note-cunha2005-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-cunha2005_2-0"><sup><b>2.0</b></sup></a> <a href="#cite_ref-cunha2005_2-1"><sup><b>2.1</b></sup></a></span> <span class="reference-text">Manuel Alcino Pereira da Cunha (2005) <a rel="nofollow" class="external text" href="http://hdl.handle.net/1822/2869">Point-free Program Calculation</a></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">W. Neville Holmes, ed. (2006) <i>Computers and People</i></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20220628203332/https://aplwiki.com/wiki/Dyalog_APL">Dyalog APL</a>. <span class="reference-accessdate"> &#91;<span class="nowrap">2022-06-14</span>&#93;</span>. (<a rel="nofollow" class="external text" href="https://aplwiki.com/wiki/Dyalog_APL">原始内容</a>存档于2022-06-28).</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;rft.btitle=Dyalog+APL&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Faplwiki.com%2Fwiki%2FDyalog_APL&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130929025044/http://concatenative.org/wiki/view/Concatenative%20language/Name%20code%20not%20values">Name code not values</a>. Concatenative.org. <span class="reference-accessdate"> &#91;<span class="nowrap">2020-10-16</span>&#93;</span>. (<a rel="nofollow" class="external text" href="https://concatenative.org/wiki/view/Concatenative%20language/Name%20code%20not%20values">原始内容</a>存档于2013-09-29).</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;rft.btitle=Name+code+not+values&amp;rft.genre=unknown&amp;rft.pub=Concatenative.org&amp;rft_id=https%3A%2F%2Fconcatenative.org%2Fwiki%2Fview%2FConcatenative%2520language%2FName%2520code%2520not%2520values&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://gist.github.com/cscalfani/30ff149a75fc5580d1f8aec61f8e5283">Functional Composition with Multiple Parameters in Haskell</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;rft.btitle=Functional+Composition+with+Multiple+Parameters+in+Haskell&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Fgist.github.com%2Fcscalfani%2F30ff149a75fc5580d1f8aec61f8e5283&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20210428224553/https://wiki.haskell.org/Pointfree#But_pointfree_has_more_points.21">Pointfree - HaskellWiki</a>. wiki.haskell.org. <span class="reference-accessdate"> &#91;<span class="nowrap">2016-06-05</span>&#93;</span>. (<a rel="nofollow" class="external text" href="https://wiki.haskell.org/Pointfree#But_pointfree_has_more_points.21">原始内容</a>存档于2021-04-28).</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;rft.atitle=Pointfree+-+HaskellWiki&amp;rft.genre=unknown&amp;rft.jtitle=wiki.haskell.org&amp;rft_id=https%3A%2F%2Fwiki.haskell.org%2FPointfree%23But_pointfree_has_more_points.21&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal" class="Z3988"><span style="display:none;">&#160;</span></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120218200826/http://www.haskell.org/pipermail/haskell-cafe/2006-September/017758.html">pipermail</a>. <span class="reference-accessdate"> &#91;<span class="nowrap">2020-04-18</span>&#93;</span>. (<a rel="nofollow" class="external text" href="http://www.haskell.org/pipermail/haskell-cafe/2006-September/017758.html">原始内容</a>存档于2012-02-18).</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;rft.btitle=pipermail&amp;rft.genre=unknown&amp;rft_id=http%3A%2F%2Fwww.haskell.org%2Fpipermail%2Fhaskell-cafe%2F2006-September%2F017758.html&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web"><a rel="nofollow" class="external text" href="https://rosettacode.org/wiki/Fibonacci_sequence#Factor">Rosetta Code — Fibonacci sequence</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzh.wikipedia.org%3A%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;rft.btitle=Rosetta+Code+%E2%80%94+Fibonacci+sequence&amp;rft.genre=unknown&amp;rft_id=https%3A%2F%2Frosettacode.org%2Fwiki%2FFibonacci_sequence%23Factor&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook" class="Z3988"><span style="display:none;">&#160;</span></span></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="外部链接"><span id=".E5.A4.96.E9.83.A8.E9.93.BE.E6.8E.A5"></span>外部链接</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;action=edit&amp;section=11" title="编辑章节:外部链接"><span>编辑</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="https://function-level.github.io/">From Function-Level Programming to Pointfree Style</a></li> <li><a rel="nofollow" class="external text" href="http://portal.acm.org/citation.cfm?id=114065&amp;dl=GUIDE&amp;coll=GUIDE">Pure Functions in APL and J</a> How to use tacit programming in any APL-like language</li> <li><a rel="nofollow" class="external text" href="http://dirkgerrits.com/publications/john-backus.pdf#section.8">Closed applicative languages 1971 - 1976 ff</a> (<a rel="nofollow" class="external text" href="//web.archive.org/web/20200207055523/http://dirkgerrits.com/publications/john-backus.pdf#section.8">页面存档备份</a>,存于<a href="/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E6%A1%A3%E6%A1%88%E9%A6%86" title="互联网档案馆">互联网档案馆</a>), in John W. Backus (Publications)</li></ul> <p><br /> </p> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r84265675">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:" :"}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist-pipe dd::after,.mw-parser-output .hlist-pipe li::after{content:" | ";font-weight:normal}.mw-parser-output .hlist-hyphen dd::after,.mw-parser-output .hlist-hyphen li::after{content:" - ";font-weight:normal}.mw-parser-output .hlist-comma dd::after,.mw-parser-output .hlist-comma li::after{content:"、";font-weight:normal}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:"("counter(listitem)"\a0 "}.mw-parser-output ul.cslist,.mw-parser-output ul.sslist{margin:0;padding:0;display:inline-block;list-style:none}.mw-parser-output .cslist li,.mw-parser-output .sslist li{margin:0;display:inline-block}.mw-parser-output .cslist li::after{content:","}.mw-parser-output .sslist li::after{content:";"}.mw-parser-output .cslist li:last-child::after,.mw-parser-output .sslist li:last-child::after{content:none}</style><style data-mw-deduplicate="TemplateStyles:r84261037">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{text-align:center;padding-left:1em;padding-right:1em}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf;position:relative}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em;width:auto;padding-left:0.2em;position:absolute;left:1em}.mw-parser-output .navbox .mw-collapsible-toggle{margin-left:0.5em;position:absolute;right:1em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="编程范型" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="collapsible-title navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r84265675"><style data-mw-deduplicate="TemplateStyles:r84244141">.mw-parser-output .navbar{display:inline;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:110%;margin:0 8em}.mw-parser-output .navbar-ct-mini{font-size:110%;margin:0 5em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B" title="Template:编程范型"><abbr title="查看该模板">查</abbr></a></li><li class="nv-talk"><a href="/w/index.php?title=Template_talk:%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B&amp;action=edit&amp;redlink=1" class="new" title="Template talk:编程范型(页面不存在)"><abbr title="讨论该模板">论</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:%E7%BC%96%E8%BE%91%E9%A1%B5%E9%9D%A2/Template:%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B" title="Special:编辑页面/Template:编程范型"><abbr title="编辑该模板">编</abbr></a></li></ul></div><div id="编程范型" style="font-size:110%;margin:0 5em"><a href="/wiki/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B" title="编程范型">编程范型</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/%E6%8C%87%E4%BB%A4%E5%BC%8F%E7%B7%A8%E7%A8%8B" title="指令式編程">指令式</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E8%BF%87%E7%A8%8B%E5%BC%8F%E7%BC%96%E7%A8%8B" title="过程式编程">过程式</a></li> <li><a href="/wiki/%E7%BB%93%E6%9E%84%E5%8C%96%E7%BC%96%E7%A8%8B" title="结构化编程">结构化</a></li> <li><a href="/wiki/%E9%9D%9E%E7%B5%90%E6%A7%8B%E5%8C%96%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88" title="非結構化程式設計">非结构化</a></li> <li><a href="/wiki/%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86" title="异常处理">例外处理</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1" title="面向对象程序设计">面向对象</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E5%9F%BA%E4%BA%8E%E7%B1%BB%E7%BC%96%E7%A8%8B" title="基于类编程">基于类</a></li> <li><a href="/wiki/%E5%9F%BA%E4%BA%8E%E5%8E%9F%E5%9E%8B%E7%BC%96%E7%A8%8B" title="基于原型编程">基于原型</a></li> <li><a href="/wiki/%E5%A5%91%E7%BA%A6%E5%BC%8F%E8%AE%BE%E8%AE%A1" title="契约式设计">契约式</a></li> <li><a href="/wiki/%E4%BB%A3%E7%90%86%E4%BA%BA%E5%B0%8E%E5%90%91%E7%B7%A8%E7%A8%8B" title="代理人導向編程">面向代理</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B" title="函数式编程">函数式</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E7%BA%AF%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B" title="纯函数式编程">纯函数式</a></li> <li><a href="/wiki/%E5%BC%BA%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B" title="强函数式编程">全函数式</a></li> <li><a class="mw-selflink selflink">隐式</a> <ul><li><a href="/wiki/%E5%87%BD%E6%95%B0%E7%BA%A7%E7%BC%96%E7%A8%8B" title="函数级编程">函数级</a></li></ul></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/%E6%95%B0%E6%8D%AE%E6%B5%81%E7%A8%8B%E7%BC%96%E7%A8%8B" title="数据流程编程">数据流程</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E5%90%8C%E6%AD%A5%E5%BC%8F%E7%BC%96%E7%A8%8B" title="同步式编程">同步式</a></li> <li><a href="/wiki/%E5%93%8D%E5%BA%94%E5%BC%8F%E7%BC%96%E7%A8%8B" title="响应式编程">响应式</a> <ul><li><a href="/wiki/%E5%87%BD%E6%95%B0%E5%BC%8F%E5%93%8D%E5%BA%94%E5%BC%8F%E7%BC%96%E7%A8%8B" title="函数式响应式编程">函数式响应</a></li></ul></li> <li><a href="/wiki/%E7%AE%A1%E9%81%93_(%E8%BD%AF%E4%BB%B6)" title="管道 (软件)">管道</a></li> <li><a href="/wiki/%E4%B8%B2%E6%B5%81%E8%99%95%E7%90%86" title="串流處理">串流处理</a></li> <li><a href="/wiki/%E5%9F%BA%E4%BA%8E%E6%B5%81%E7%A8%8B%E7%BC%96%E7%A8%8B" title="基于流程编程">基于流程</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/%E5%AE%A3%E5%91%8A%E5%BC%8F%E7%B7%A8%E7%A8%8B" title="宣告式編程">宣告式</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E9%82%8F%E8%BC%AF%E7%B7%A8%E7%A8%8B" title="邏輯編程">逻辑式</a> <ul><li><a href="/wiki/%E5%9B%9E%E7%AD%94%E9%9B%86%E7%BC%96%E7%A8%8B" title="回答集编程">回答集</a></li> <li><a href="/wiki/%E5%87%BD%E6%95%B0%E5%BC%8F%E9%80%BB%E8%BE%91%E7%BC%96%E7%A8%8B" title="函数式逻辑编程">函数式逻辑</a></li></ul></li> <li><a href="/wiki/%E7%BA%A6%E6%9D%9F%E7%BC%96%E7%A8%8B" title="约束编程">约束式</a></li> <li><a href="/wiki/%E6%9F%A5%E8%A9%A2%E8%AA%9E%E8%A8%80" title="查詢語言">数据查询</a></li> <li><a href="/wiki/%E6%A1%86%E6%9E%B6_(%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD)" title="框架 (人工智能)">框架</a><a href="/wiki/%E6%9C%AC%E4%BD%93%E8%AF%AD%E8%A8%80" title="本体语言">本体</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/%E5%85%83%E7%BC%96%E7%A8%8B" title="元编程">元编程</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E5%B7%A8%E9%9B%86" title="巨集">宏</a></li> <li><a href="/wiki/%E6%A8%A1%E6%9D%BF%E5%85%83%E7%B7%A8%E7%A8%8B" title="模板元編程">模板</a></li> <li><a href="/wiki/%E5%8F%8D%E5%B0%84%E5%BC%8F%E7%BC%96%E7%A8%8B" title="反射式编程">反射式</a> <ul><li><a href="/wiki/%E5%90%8C%E5%83%8F%E6%80%A7" title="同像性">同像性</a></li> <li><a href="/wiki/%E5%85%83%E5%AF%B9%E8%B1%A1" title="元对象">元对象</a></li> <li><a href="/wiki/%E5%85%83%E7%B1%BB" title="元类">元类</a></li></ul></li> <li><a href="/wiki/%E9%9D%A2%E5%90%91%E7%89%B9%E6%80%A7%E7%BC%96%E7%A8%8B" title="面向特性编程">面向特性</a></li> <li><a href="/wiki/%E9%9D%A2%E5%90%91%E8%AF%AD%E8%A8%80%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1" title="面向语言的程序设计">面向语言</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/%E5%B9%B6%E5%8F%91%E8%AE%A1%E7%AE%97" title="并发计算">并发</a>/<a href="/wiki/%E5%B9%B6%E8%A1%8C%E7%BC%96%E7%A8%8B%E6%A8%A1%E5%9E%8B" title="并行编程模型">并行</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E5%8D%8F%E7%A8%8B" title="协程">协程</a> <ul><li><a href="/wiki/%E7%94%9F%E6%88%90%E5%99%A8_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BC%96%E7%A8%8B)" title="生成器 (计算机编程)">生成器</a></li></ul></li> <li><a href="/wiki/Future%E4%B8%8Epromise" title="Future与promise">future/promise</a></li> <li><a href="/wiki/%E6%BC%94%E5%91%98%E6%A8%A1%E5%9E%8B" title="演员模型">演员模型</a> <ul><li><a href="/wiki/%E8%A8%8A%E6%81%AF%E5%82%B3%E9%81%9E_(%E8%BB%9F%E9%AB%94)" title="訊息傳遞 (軟體)">消息传递</a></li></ul></li> <li><a href="/wiki/%E9%80%9A%E4%BF%A1%E9%A1%BA%E5%BA%8F%E8%BF%9B%E7%A8%8B" title="通信顺序进程">通信顺序进程</a> <ul><li><a href="/wiki/%E9%80%9A%E9%81%93_(%E7%BC%96%E7%A8%8B)" title="通道 (编程)">通道</a></li></ul></li> <li><a href="/wiki/%E5%88%86%E5%8F%89%E4%BC%9A%E5%90%88%E6%A8%A1%E5%9E%8B" title="分叉会合模型">分叉会合</a></li> <li><a href="/wiki/%E6%95%B4%E4%BD%93%E5%90%8C%E6%AD%A5%E5%B9%B6%E8%A1%8C" title="整体同步并行">整体同步</a></li> <li><a href="/wiki/%E5%88%86%E5%8C%BA%E5%85%A8%E5%B1%80%E5%9C%B0%E5%9D%80%E7%A9%BA%E9%97%B4" title="分区全局地址空间">PGAS</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">其他范型</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E9%98%B5%E5%88%97%E7%BC%96%E7%A8%8B" title="阵列编程">阵列</a></li> <li><span class="ilh-all" data-orig-title="面向表达式编程语言" data-lang-code="en" data-lang-name="英语" data-foreign-title="Expression-oriented programming language"><span class="ilh-page"><a href="/w/index.php?title=%E9%9D%A2%E5%90%91%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80&amp;action=edit&amp;redlink=1" class="new" title="面向表达式编程语言(页面不存在)">面向表达式</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Expression-oriented_programming_language" class="extiw" title="en:Expression-oriented programming language"><span lang="en" dir="auto">Expression-oriented programming language</span></a></span><span class="ilh-paren">)</span></span></span></li> <li><a href="/wiki/%E6%A8%A1%E5%9D%97%E5%8C%96%E7%BC%96%E7%A8%8B" title="模块化编程">模块化</a> <ul><li><a href="/wiki/%E5%85%B3%E6%B3%A8%E7%82%B9%E5%88%86%E7%A6%BB" title="关注点分离">关注分离</a></li></ul></li> <li><a href="/wiki/%E9%9D%A2%E5%90%91%E5%88%87%E9%9D%A2%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1" title="面向切面的程序设计">面向方面</a></li> <li><a href="/wiki/%E6%95%B0%E6%8D%AE%E9%A9%B1%E5%8A%A8%E7%BC%96%E7%A8%8B" title="数据驱动编程">数据驱动</a></li> <li><a href="/wiki/%E4%BA%8B%E4%BB%B6%E9%A9%85%E5%8B%95%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88" title="事件驅動程式設計">事件驱动</a></li> <li><a href="/wiki/%E4%B8%B2%E6%8E%A5%E5%BC%8F%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80" title="串接式编程语言">串接式</a> <ul><li><a href="/wiki/%E9%9D%A2%E5%90%91%E5%A0%86%E6%A0%88%E7%BC%96%E7%A8%8B" title="面向堆栈编程">面向堆栈</a></li></ul></li> <li><a href="/wiki/%E8%87%AA%E5%8A%A8%E6%9C%BA%E7%BC%96%E7%A8%8B" title="自动机编程">基于自动机</a></li> <li><a href="/wiki/%E5%8F%AF%E5%BE%AE%E5%88%86%E7%BC%96%E7%A8%8B" title="可微分编程">可微分</a></li> <li><a href="/wiki/%E6%A6%82%E7%8E%87%E7%BC%96%E7%A8%8B" title="概率编程">概率式</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><tt>&#160;关键特征</tt></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E5%9D%97_(%E7%BC%96%E7%A8%8B)" title="块 (编程)">块</a> <ul><li><span class="ilh-all" data-orig-title="嵌套函数" data-lang-code="en" data-lang-name="英语" data-foreign-title="Nested function"><span class="ilh-page"><a href="/w/index.php?title=%E5%B5%8C%E5%A5%97%E5%87%BD%E6%95%B0&amp;action=edit&amp;redlink=1" class="new" title="嵌套函数(页面不存在)">嵌套函数</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Nested_function" class="extiw" title="en:Nested function"><span lang="en" dir="auto">Nested function</span></a></span><span class="ilh-paren">)</span></span></span></li> <li><a href="/wiki/%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0" title="回调函数">回调函数</a></li></ul></li> <li><a href="/wiki/%E9%80%92%E5%BD%92_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6)" title="递归 (计算机科学)">递归</a></li> <li><a href="/wiki/%E9%A0%AD%E7%AD%89%E7%89%A9%E4%BB%B6" title="頭等物件">头等对象</a> <ul><li><a href="/wiki/%E5%A4%B4%E7%AD%89%E5%87%BD%E6%95%B0" title="头等函数">头等函数</a></li> <li><a href="/wiki/%E9%97%AD%E5%8C%85_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6)" title="闭包 (计算机科学)">闭包</a></li></ul></li> <li><a href="/wiki/%E5%AE%9E%E5%8C%96" title="实化">实化</a> <ul><li><a href="/wiki/%E7%BB%AD%E4%BD%93" title="续体">续体</a></li></ul></li> <li><a href="/wiki/%E5%A4%9A%E6%80%81_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6)" title="多态 (计算机科学)">多态</a> <ul><li><a href="/wiki/%E8%BF%90%E7%AE%97%E7%AC%A6%E9%87%8D%E8%BD%BD" title="运算符重载">运算符重载</a></li> <li><a href="/wiki/%E6%B3%9B%E5%9E%8B%E7%BC%96%E7%A8%8B" title="泛型编程">泛型</a></li> <li><a href="/wiki/%E5%A4%9A%E5%88%86%E6%B4%BE" title="多分派">多分派</a></li></ul></li> <li><a href="/wiki/%E6%A8%A1%E5%BC%8F%E5%8C%B9%E9%85%8D" title="模式匹配">模式匹配</a></li> <li><a href="/wiki/%E5%88%97%E8%A1%A8%E6%8E%A8%E5%AF%BC%E5%BC%8F" title="列表推导式">推导式</a></li> <li><a href="/wiki/%E6%8A%BD%E8%B1%A1%E8%B3%87%E6%96%99%E5%9E%8B%E5%88%A5" title="抽象資料型別">抽象数据类型</a></li> <li><a href="/wiki/%E4%BB%A3%E6%95%B0%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B" title="代数数据类型">代数数据类型</a></li> <li><a href="/wiki/%E9%80%92%E5%BD%92%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B" title="递归数据类型">递归数据类型</a></li> <li><a href="/wiki/%E6%B1%82%E5%80%BC%E7%AD%96%E7%95%A5" title="求值策略">求值策略</a></li> <li><a href="/wiki/%E9%9D%9E%E7%A1%AE%E5%AE%9A%E6%80%A7%E7%BC%96%E7%A8%8B" title="非确定性编程">非确定性</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><span class="ilh-all" data-orig-title="多范型语言比较" data-lang-code="en" data-lang-name="英语" data-foreign-title="Comparison of multi-paradigm programming languages"><span class="ilh-page"><a href="/w/index.php?title=%E5%A4%9A%E8%8C%83%E5%9E%8B%E8%AF%AD%E8%A8%80%E6%AF%94%E8%BE%83&amp;action=edit&amp;redlink=1" class="new" title="多范型语言比较(页面不存在)">多范型语言比较</a></span><span class="noprint ilh-comment"><span class="ilh-paren">(</span><span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Comparison_of_multi-paradigm_programming_languages" class="extiw" title="en:Comparison of multi-paradigm programming languages"><span lang="en" dir="auto">Comparison of multi-paradigm programming languages</span></a></span><span class="ilh-paren">)</span></span></span></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐868759585b‐rdx9g Cached time: 20250214193755 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.352 seconds Real time usage: 0.471 seconds Preprocessor visited node count: 975/1000000 Post‐expand include size: 242890/2097152 bytes Template argument size: 518/2097152 bytes Highest expansion depth: 8/100 Expensive parser function count: 24/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 51455/5000000 bytes Lua time usage: 0.160/10.000 seconds Lua memory usage: 5169330/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 289.340 1 -total 26.89% 77.804 1 Template:编程范型 26.25% 75.939 1 Template:Navbox 22.63% 65.473 1 Template:Reflist 22.30% 64.527 1 Template:NoteTA 19.27% 55.765 7 Template:Cite_web 15.27% 44.189 8 Template:En-link 7.26% 21.008 1 Template:Main 1.39% 4.027 1 Template:Le 0.48% 1.375 1 Template:Column-count --> <!-- Saved in parser cache with key zhwiki:pcache:7014744:|#|:idhash:canonical!zh and timestamp 20250214193755 and revision id 86105033. 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?useformat=desktop&amp;type=1x1&amp;usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">检索自“<a dir="ltr" href="https://zh.wikipedia.org/w/index.php?title=隐式编程&amp;oldid=86105033">https://zh.wikipedia.org/w/index.php?title=隐式编程&amp;oldid=86105033</a>”</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:%E9%A1%B5%E9%9D%A2%E5%88%86%E7%B1%BB" title="Special:页面分类">分类</a>:​<ul><li><a href="/wiki/Category:%E7%BC%96%E7%A8%8B%E8%8C%83%E5%BC%8F" title="Category:编程范式">编程范式</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">隐藏分类:​<ul><li><a href="/wiki/Category:%E5%AD%98%E5%9C%A8%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE%E9%94%99%E8%AF%AF%E7%9A%84%E9%A1%B5%E9%9D%A2" title="Category:存在语法高亮错误的页面">存在语法高亮错误的页面</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"> 本页面最后修订于2025年2月14日 (星期五) 19:35。</li> <li id="footer-info-copyright">本站的全部文字在<a href="/wiki/Wikipedia:CC_BY-SA_4.0%E5%8D%8F%E8%AE%AE%E6%96%87%E6%9C%AC" title="Wikipedia:CC BY-SA 4.0协议文本">知识共享 署名-相同方式共享 4.0协议</a>之条款下提供,附加条款亦可能应用。(请参阅<a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">使用条款</a>)<br /> Wikipedia&#174;和维基百科标志是<a rel="nofollow" class="external text" href="https://wikimediafoundation.org/zh">维基媒体基金会</a>的注册商标;维基&#8482;是维基媒体基金会的商标。<br /> 维基媒体基金会是按美国国內稅收法501(c)(3)登记的<a class="external text" href="https://donate.wikimedia.org/wiki/Special:MyLanguage/Tax_deductibility">非营利慈善机构</a>。<br /></li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">隐私政策</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:%E5%85%B3%E4%BA%8E">关于维基百科</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:%E5%85%8D%E8%B4%A3%E5%A3%B0%E6%98%8E">免责声明</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">行为准则</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">开发者</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/zh.wikipedia.org">统计</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie声明</a></li> <li id="footer-places-mobileview"><a href="//zh.m.wikipedia.org/w/index.php?title=%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">手机版视图</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"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></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"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>搜索</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div 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="搜索维基百科"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:搜索"> </div> <button class="cdx-button cdx-search-input__end-button">搜索</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="目录" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="开关目录" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-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">开关目录</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">隐式编程</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>7种语言</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>添加话题</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </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-684b8fd8bd-jxqlv","wgBackendResponseTime":151,"wgPageParseReport":{"limitreport":{"cputime":"0.352","walltime":"0.471","ppvisitednodes":{"value":975,"limit":1000000},"postexpandincludesize":{"value":242890,"limit":2097152},"templateargumentsize":{"value":518,"limit":2097152},"expansiondepth":{"value":8,"limit":100},"expensivefunctioncount":{"value":24,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":51455,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 289.340 1 -total"," 26.89% 77.804 1 Template:编程范型"," 26.25% 75.939 1 Template:Navbox"," 22.63% 65.473 1 Template:Reflist"," 22.30% 64.527 1 Template:NoteTA"," 19.27% 55.765 7 Template:Cite_web"," 15.27% 44.189 8 Template:En-link"," 7.26% 21.008 1 Template:Main"," 1.39% 4.027 1 Template:Le"," 0.48% 1.375 1 Template:Column-count"]},"scribunto":{"limitreport-timeusage":{"value":"0.160","limit":"10.000"},"limitreport-memusage":{"value":5169330,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-868759585b-rdx9g","timestamp":"20250214193755","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"\u9690\u5f0f\u7f16\u7a0b","url":"https:\/\/zh.wikipedia.org\/wiki\/%E9%9A%90%E5%BC%8F%E7%BC%96%E7%A8%8B","sameAs":"http:\/\/www.wikidata.org\/entity\/Q3305965","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q3305965","author":{"@type":"Organization","name":"\u7ef4\u57fa\u5a92\u4f53\u9879\u76ee\u8d21\u732e\u8005"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2020-04-18T11:57:05Z","dateModified":"2025-02-14T19:35:00Z"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10