`
lukeshei
  • 浏览: 397805 次
  • 性别: Icon_minigender_1
  • 来自: 台北
社区版块
存档分类
最新评论

思考程式的方式--Higher-Order Perl

阅读更多

這段程式碼很有意思,事實上我們常常在寫程式時創造一些可重複使用的架構,但是怎麼做會更靈活?<br /><br />ps. 程式碼哉自Higer-Order Perl<br /><br />這程式是一個 list 目錄-檔案的 遞迴程式,通常我們寫完了以後,會希望從這個結構擴充,而下面程<br />式碼中的 $code->($top); 正是可以由外部擴充邏輯的地方(callback)<br />sub dir_walk { <br />my ($top, $code) = @_; <br />my $DIR;<br />$code->($top);<br />if (-d $top) {<br />my $file;<br />unless (opendir $DIR, $top) {<br />warn "Couldn’t open directory $top: $!; skipping.\n";<br />return;<br />}<br />while ($file = readdir $DIR) {<br />next if $file eq '.' || $file eq '..';<br />dir_walk("$top/$file", $code);<br />}<br />}<br />}<br /> <br />sub print_dir {<br />print $_[0], "\n";<br />}<br /><br />dir_walk('.', \&print_dir );<br /><br />在這裡我們看到,程式原始的架構是list 目錄-檔案 , 但是我們可以傳給function 2個參數<br />1 起始路徑 2 function , 恩! 這看起來有濃濃的 functional 的味道,不是嗎?

0
0
分享到:
评论

相关推荐

    高阶Perl-用程式转换程式Higher-Order Perl - Transforming Programs With Programs

    引入了强大的编程方法-大多数Perl程序员都不熟悉-并展示了如何改进日常程序。 还包括许多引人入胜的代码示例,以说明这些方法。

    higher-order networks.pdf

    通过这种方式,读者可以了解到复杂系统的行为如何受到其内部结构的深刻影响。例如,通过对简复形的分析,我们可以理解网络中的节点和边如何组合形成更高维度的交互模式,这些模式可能是传统二阶网络无法捕捉的。 ...

    Higher order perl programming

    - **递归**: 讨论了递归函数的概念及其在Perl中的实现方式,递归是一种强大的解决问题的方法,特别是在处理树形结构的数据时非常有效。 ##### 高级特性 - **缓存技术**: 书中讨论了缓存技术的重要性和实现方法,...

    高阶Perl [中文版] Higher-Order Perl [2013] Mark.Jason.Dominus

    通过对递归、迭代器、缓存、Currying等高级技术的详细介绍,以及对声明式编程理念的阐述,这本书为读者提供了一套完整的Perl学习框架。无论是初学者还是有一定经验的Perl开发者,都可以从中学到许多有价值的知识和...

    ACTIVITY5-Non-Homogeneous-Higher-Order-DE_transform_

    标题“ACTIVITY5-Non-Homogeneous-Higher-Order-DE_transform_”涉及的是非齐次高阶微分方程及其变换方法的学习活动。在数学和工程领域,微分方程是描述物理现象、电路行为、机械系统等的关键工具。非齐次微分方程与...

    Higher Order Perl Programming

    高阶函数(Higher-Order Functions) 高阶函数是指可以接受其他函数作为参数或返回函数作为结果的函数。这类函数在函数式编程语言中非常常见,但在Perl中同样可以灵活运用。例如,书中可能会介绍如何使用`map`, `...

    ACTIVITY4-IVP-Homogeneous-DE-of-Higher-Order_transform_

    标题“ACTIVITY4-IVP-Homogeneous-DE-of-Higher-Order_transform_”指向一个活动或教程,专门探讨高阶齐次微分方程(Homogeneous Differential Equations of Higher Order)的变换方法。这类方程在数学,特别是微...

    MATLAB高阶谱工具箱-Higher-Order Spectral Analysis (HOSA) Toolbox.rar

    MATLAB高阶谱工具箱-Higher-Order Spectral Analysis Toolbox.rar MATLAB高阶谱工具箱 Matlab中文论坛: www.iLoveMatlab.cn

    higher-order-organization-matlab-master.zip

    代码以斯坦福大学官网上的铁线虫的神经元网络作为实验数据集对作者提出的复杂网络的高阶聚类进行仿真,代码可以直接在MATLAB平台上运行,实验结果表明用三个节点的motif作为基本单元,网络的性能更强,导度更小,也...

    higher-order-SM-science16.pdf

    网络是理解和建模物理、生物、神经科学、工程和社会科学中的复杂系统的基本工具。众所周知,许多网络具有丰富的低阶连接模式,可以在单个节点和边缘级别捕获这些模式。然而,复杂网络在小网络子图层次上的高阶组织在...

    higher-order-organization-matlab-master.rar_Higher_matlab神经网络_or

    在本项目"higher-order-organization-matlab-master.rar"中,我们主要探讨的是利用MATLAB进行复杂网络的高阶组织分析。MATLAB是一种强大的编程环境,尤其适合数值计算和数据分析,而神经网络作为一种模仿人脑神经元...

    arbenson-higher-order-organization-matlab.zip

    标题 "arbenson-higher-order-organization-matlab.zip" 暗示了这是一个与使用 MATLAB 进行高阶组织结构分析相关的项目。MATLAB 是一种强大的编程环境,尤其适合数值计算、数据分析和算法开发。在这个压缩包中,我们...

    高阶谱书Higher-Order Spectral Analysis Toolbox

    高阶谱书Higher-Order Spectral Analysis Toolbox MATALB 高阶谱分析工具箱原版介绍

    Successive Rank-One Decomposition of Higher-Order Symmetric Complex Tensors

    高阶对称复张量的逐次秩一分解,张仉辉,白敏茹,为了得到高阶对称复张量的标准分解,本文将矩阵中的逐次分解方法推广到张量情形,提出高阶对称复张量的逐次对称秩一复逼近方法。本�

    Higher-Order Image Co-segmentation

    High-Order Image Co-segmentation是一种新颖的图像协同分割算法,它采用了似然估计和高阶能量优化技术,目的是为了更高效地从一组具有复杂场景中大量外观变化的图像中实现前景对象的协同分割。 首先,算法基于区域...

    first-order and higher-order paradigms.pdf

    pi演算作者当年的博士论文,值得一看!详细地介绍了pi-演算!pi演算作者当年的博士论文,值得一看!详细地介绍了pi-演算!pi演算作者当年的博士论文,值得一看!详细地介绍了pi-演算!

    Higher-Order Spectral Analysis (HOSA) Toolbox(含PDF帮助文档)

    ** Higher-Order Spectral Analysis (HOSA) Toolbox ** Higher-Order Spectral Analysis (HOSA) 是一种用于分析非线性和非高斯信号的重要技术。它超越了传统的功率谱分析,通过考虑信号的高阶统计特性来揭示隐藏在...

    30 App Store Optimisation - How to Rank Higher on the App Store Search Algorithm

    30 App Store Optimisation - How to Rank Higher on the App Store Search Algorithm

    higher-order-fetch

    安装npm install higher-order-fetch或者yarn add higher-order-fetch如何使用第1步:编写您的抓取代码: // fetchHelper.jsimport { defaultHeadersHOF } from "higher-order-fetch/lib/defaultHeaders" ;...

Global site tag (gtag.js) - Google Analytics