`
诺铁
  • 浏览: 35293 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

一段很有代数味道的代码

阅读更多

一段很有代数味道的代码

来自haskell 99题 http://haskell.org/haskellwiki/99_questions/21_to_28

 

--Insert an element at a given position into a list.

insertAt :: a -> [a] -> Int -> [a]            

 

我本来的写法是

insertAt x xs pos = let ss = splitAt pos xs
                             in fst ss ++ [x] ++ snd ss
 
答案里的写法很妙

insertAt x xs pos = let (ys,zs) = splitAt pos xs
                    in ys ++ [x] ++ zs
 

我的思想仍然有命令式的味道,没想到还有这么"代数式"的写法。haskell里的“let"绝对就是数学里的“设“ ,太妙了

分享到:
评论

相关推荐

    【matlab源代码】线性代数课件+源代码

    这个压缩包“【matlab源代码】线性代数课件+源代码”包含了与线性代数相关的MATLAB源代码和可能的课件资料,为学习者提供了一个实践与理论相结合的学习平台。 1. **矩阵操作**:MATLAB的核心功能之一就是处理矩阵。...

    代数模型的matlab代码

    在这个名为"代数模型的matlab代码"的压缩包中,我们很可能会找到一系列用于创建和分析代数模型的MATLAB脚本和函数。 首先,我们需要理解代数模型的基本概念。在数学上,代数模型是通过一组方程式来表达变量之间的...

    线性代数代码C++(很好——)

    解多元一次方程,非常使用 希望对大家都有所帮助

    判断给出的代数系统是否为群 代码

    在IT领域,尤其是在计算机科学和数学的交叉部分,群论是一种重要的抽象代数概念,它在数据结构、算法设计和密码学等领域都有应用。这里提到的"判断给出的代数系统是否为群"的代码是用C语言实现的,旨在验证一个给定...

    代码编写实现离散数学代数系统,半群的判断

    1.判断代数系统,*>的性质:输入任意一个集合 G 及其运算*规则,判断其运算在该集合上是否是代数系统,是否满足可结合,可交换,如若不满足,给出原因。 2.判断,*>是否为群:输入任意一个集合 G 及其运算*规则,判断...

    C语言版本的BLAS线性代数数学库软件源代码

    **BLAS(基础线性代数子程序)**是计算机科学中的一个标准接口,它定义了一系列用于执行基本矩阵和向量操作的低级函数。这些函数通常被优化以实现高效计算,尤其在处理大规模数值计算时。CBLAS是BLAS接口的一个C语言...

    抽象代数、代数学习题解

    环是在群的基础上增加了一个额外的加法运算,同时满足加法的封闭性和结合律、存在加法单位元和每个元素都有加法逆元,以及乘法对加法的分配律。域则是环的一种特殊形式,其中的乘法也是可逆的。 5. **同态与同构**...

    离散数学代数子代数积代数

    这是关于离散数学中代数,子代数,积代数的讲解ppt,与文字描述相比更形象,对于入门者来说很好,对于复习来说提高效率。

    交换代数导引 Atiyah

    交换代数是代数学的一个分支,主要研究交换环及其上的模和理想。环、理想、模是交换代数中的基本概念。环是由一个集合以及定义在这个集合上的两种运算(加法和乘法)构成的代数结构,且满足特定的公理,例如加法的...

    高等代数葵花宝典新版.pdf

    初等代数从最简单的一元一次方程开始,初等代数一方面进而讨论二元及三元的一次方程组,另一方面研究二次以上及可以转化为二次的方程组。沿着这两个方向继续发展,代数在讨论任意多个未知数的一次方程组,也叫线性...

    算法仿真中的代数环问题.doc

    1. **形成原因**:在仿真工具(如Simulink)中,如果模块之间的信号连接方式构成了一个闭环,即输出信号通过一系列运算后又反馈到了自身的输入端,那么就形成了代数环。 2. **识别方法**:代数环的存在可以通过观察...

    离散数学-判断代数系统性质

    3. **含幺性**:一个代数系统如果存在一个幺元e,使得对所有元素a,都有a * e = e * a = a,则称该系统含幺。在程序中,未明确实现含幺性的检查,但可以通过遍历运算表并寻找满足条件的元素实现。 4. **有逆元性**...

    高等代数课本 北大版 高等代数课本北大版

    《高等代数》是北京大学出版的一本经典教材,它涵盖了线性代数、多项式理论、群论、环论等多个核心领域,对于深入理解和掌握代数学的基本概念、定理和方法具有极其重要的作用。这本书不仅是大学数学专业学生的必修...

    交换代数与同调代数

    在抽象代数中,交换代数旨在探讨交换环及其理想,以及交换环上的模

    cpp-使用Armadillo自动将线性代数R代码编译为C

    4. **R到C++的转换**:如果你已经有了R代码,你可以先在R环境中运行并测试这部分代码,确保其正确无误。然后,理解R代码中的线性代数操作,并用Armadillo的相应函数替换。例如,R中的`%*%`对应于Armadillo的`*`...

    工程线性代数matlab源码MATLAB版陈怀琛著-工程线性代数matlab源码(MATLAB版陈怀琛著).zip

    工程线性代数是计算机科学、工程和数学领域的一个重要分支,它研究向量、矩阵、线性方程组以及这些概念的抽象推广。MATLAB作为一种强大的数值计算和数据分析工具,广泛应用于线性代数的实践操作。陈怀琛教授编著的...

    近世代数代数系统ppt

    近世代数是数学的一个分支,主要研究抽象代数结构,如群、环、域等。这些概念构成了现代数学的基础,并广泛应用于密码学、计算机科学、物理学等多个领域。 首先,我们来了解一下代数系统的定义。一个代数系统是由一...

    线性代数经典25题 线性代数经典25题 线性代数经典25题

    线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数经典25题线性代数...

    Assignment4_数值代数_

    数值代数是计算科学中的一个核心领域,主要研究数值上处理线性代数问题的方法。以下是对每个文件的详细说明: 1. **prob2.m**:这可能是一个包含第2章上机习题的具体问题或一组问题的脚本,可能是要求用户计算矩阵...

Global site tag (gtag.js) - Google Analytics