`
CharlesCui
  • 浏览: 427478 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Haskell例程一:计算直角三角形边长

阅读更多
如何取得所有三边长度皆为整数且小于等于10,周长为24的直角三角形?首先,把所有三遍长度小于等于10的三角形都列出来:

ghci> let triangles = [ (a,b,c) | c <- [1..10], b <- [1..10], a <- [1..10] ]   


刚才我们是从三个List中取值,并且通过输出函数将其组合为一个Triple。只要在ghci下边调用triangle,你就会得到所有三遍都小于等于 10的三角形。我们接下来给它添加一个限制条件,令其必须为直角三角形。同时也考虑上b边要比斜边短,a边要比b边短的情况:

ghci> let rightTriangles = [ (a,b,c) | c <- [1..10], b <- [1..c], a <- [1..b], a^2 + b^2 == c^2]  

已经差不多了。最后,修改函数,告诉它只要周长为24的三角形。

ghci> let rightTriangles' = [ (a,b,c) | c <- [1..10], b <- [1..c], a <- [1..b], a^2 + b^2 == c^2, a+b+c == 24]  

ghci> rightTriangles'  

[(6,8,10)]  
分享到:
评论

相关推荐

    Haskell-Practice:Haskell脚本练习

    Haskell是一种纯函数式编程语言,它以其严格的静态类型、惰性求值和高阶函数等特点,被广泛用于学术研究和工业应用。在"Haskell-Practice"这个项目中,我们有机会深入学习和实践Haskell的基本概念和高级特性。 首先...

    haskell-installation:安装 Haskell 的说明

    安装 Haskell 的说明 这些说明适用于 GHC 7.8.4,并将与最新发布的 GHC 版本保持同步。 为什么会有这套指令? 为什么会有这套关于如何在您的计算机上安装 Haskell 的说明? 的官方网站还不够吗? 可悲的是,现在...

    haskell-do::pencil2:-Haskell代码编辑器专注于交互式开发

    “haskell-do::pencil2:-Haskell代码编辑器专注于交互式开发” 这个标题揭示了我们正在讨论一个专为Haskell编程语言设计的代码编辑器,名为“haskell-do::pencil2”。这个编辑器强调的是交互式编程体验,这意味...

    haskell短语手册:Haskell短语手册:通过小的带注释的示例程序快速介绍Haskell

    "Haskell短语手册"是一个很好的入门资源,它通过一系列带注释的小示例程序,帮助初学者快速理解Haskell的基本概念和语法。通过实践这些示例,读者可以逐步掌握函数式编程思维方式以及Haskell的独特特性。 在阅读这...

    haskell.nix:Nixpkgs的替代Haskell基础结构

    【描述】:“haskell.nix是Nixpkgs中的一个项目,它为Haskell编程语言提供了另一种构建和管理环境的方法,旨在替代Nixpkgs原有的Haskell支持。” 【详细说明】 Haskell.nix是一个用于构建和管理Haskell项目的工具...

    Haskell_Coding:小Haskell程序的回购

    在编程世界中,Haskell是一种纯函数式编程语言,以其优雅的语法和强大的类型系统而闻名。本资源“Haskell_Coding:小Haskell程序的回购”似乎是一个关于使用Haskell编写小型程序的教程或项目集合,旨在帮助学习者深入...

    haskell_playground:我与Haskell学习FP

    Haskell,一种静态类型的、纯函数式的编程语言,因其优雅的语法和强大的类型系统而备受程序员喜爱。在这个名为“haskell_playground”的项目中,我们可以看到一个初学者如何逐步学习并实践Haskell的FP概念。 函数式...

    haskell-flatbuffers:Haskell中flatbuffers协议的实现

    haskell-flatbuffers:Haskell中flatbuffers协议的实现

    haskell-plot:纯Haskell中的2D绘图库

    为了解决这个问题,开发者创建了`haskell-plot`,这是一个纯Haskell实现的2D绘图库,使得Haskell程序员可以方便地生成高质量的2D图形。 ### 1. 库概述 `haskell-plot`库的核心目标是提供一个简洁且易于使用的接口...

    haskell-sajson:用于sajson的Haskell包装器

    2. **Haskell**:一种纯函数式编程语言,强调类型安全和避免副作用。它的强类型系统和惰性求值策略使其在处理复杂数据和并发场景时表现出色。 3. **sajson**:一个C++编写的快速JSON解析器,设计简洁,体积小,但...

    Haskell-Practice:香港大学 COMP 3258 函数式编程课程

    3. Stack:一个跨平台的Haskell开发工具,用于构建、管理和运行Haskell项目。 总结,香港大学的COMP3258课程通过Haskell这个强大的函数式编程语言,让学生掌握函数式编程的思想和技巧。从基础的编程概念到高级的...

    haskell-mooc:Haskell MOOC赫尔辛基大学

    Haskell是一种纯函数式编程语言,以其严格的静态类型系统、 lazy evaluation(惰性求值)和丰富的数学理论基础而闻名。赫尔辛基大学提供的Haskell MOOC(大规模开放在线课程)是学习这种语言的一个宝贵资源,它旨在...

    haskell-wasm:Haskell WebAssembly工具包

    `haskell-wasm`工具包正是将Haskell与WebAssembly相结合,为Haskell开发者提供了一种在Web环境中高效执行Haskell代码的途径。 【Haskell编译器工具链】 `haskell-wasm`工具包的核心是Haskell编译器对WebAssembly的...

    haskell-ip:IP地址实施

    【标签】"Haskell"明确了这个项目是用Haskell语言编写的,Haskell是一种纯函数式编程语言,以其严格的静态类型系统、延迟计算(惰性求值)和类型推导等特点著称。理解Haskell的基础概念,如高阶函数、类型类、Monads...

    Haskell-Project:达到95

    此外,Haskell的懒求值策略允许程序仅在需要时计算结果,提高了效率。 “Haskell-Project:达到95”可能指的是一个学习或实践Haskell编程的项目,目标是使代码质量、性能或者完成度达到95%的标准。在Haskell的世界里...

    haskell-nix:Nix和Haskell投入生产

    Nix和Haskell投入生产本指南记录了我如何使用Nix进行Haskell开发。 如果您想做出贡献或提出改进建议,请随时提出问题或提出请求该项目的目的是支持两个Haskell工作流程: 工作流程1:Nix规定了开发环境Nix提供了所有...

    haskell-opencv:Haskell绑定到OpenCV-3.x

    Haskell是一种函数式编程语言,以其严谨的类型系统和纯洁的函数风格著称,这使得Haskell在处理复杂计算和并发问题时具有天然的优势。将OpenCV与Haskell结合,开发者可以在享受Haskell优雅的编程体验的同时,利用...

    ac-haskell-process:Emacs 自动完成包的 Haskell 完成源

    这个插件为流行的 Emacs 交互式自动完成框架提供了一个完成源。 完成取自由haskell-mode管理的当前后台 Haskell 进程。 最新稳定版本:查看,这也将是通过 MELPA Stable 提供的最新版本。 安装 首先,确保安装了...

    Project-Euler-Haskell:Haskell解决方案:projecteuler.net

    3. **QuickCheck**:一个用于进行属性测试的库,通过随机生成测试数据来验证函数的正确性。 4. ** cabal**:Haskell的包管理和构建工具,用于管理依赖和构建项目。 在“Project-Euler-Haskell-master”这个压缩包...

Global site tag (gtag.js) - Google Analytics