当前位置: 首页 > 编程日记 > 正文

haskell的分数运算

孩子要上3年级了,里面涉及分数的部分,先准备一下。

haskell中涉及分数的模块是Ratio。

Ratio

Synopsis

Documentation

data Ratio a

Rational numbers, with numerator and denominator of some Integral type.

Instances

Typeable1 Ratio
Integral a => Enum (Ratio a)
Eq a => Eq (Ratio a)
Integral a => Fractional (Ratio a)
Integral a => Num (Ratio a)
Integral a => Ord (Ratio a)
(Integral a, Read a) => Read (Ratio a)
Integral a => Real (Ratio a)
Integral a => RealFrac (Ratio a)
(Integral a, Show a) => Show (Ratio a)

type Rational = Ratio Integer

Arbitrary-precision rational numbers, represented as a ratio of two Integer values. A rational number may be constructed using the % operator.

(%) :: Integral a => a -> a -> Ratio a

Forms the ratio of two integral numbers.

numerator :: Integral a => Ratio a -> a

Extract the numerator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

denominator :: Integral a => Ratio a -> a

Extract the denominator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

approxRational :: RealFrac a => a -> a -> Rational

approxRational, applied to two real fractional numbers x and epsilon, returns the simplest rational number within epsilon of x. A rational number y is said to be simpler than another y' if

  • abs (numerator y) <= abs (numerator y'), and
  • denominator y <= denominator y'.

Any real interval contains a unique simplest rational; in particular, note that 0/1 is the simplest rational of all.

比如:

Prelude Ratio> (2%3) * (3%4)
1 % 2
Prelude Ratio> (2%3) + (3%4)
17 % 12
Prelude Ratio> (2%3) / (3%4)
8 % 9
Prelude Ratio> (2%3) - (3%4)
(-1) % 12

Prelude Ratio> 3 % 2                                         --分数二分之三
3 % 2
Prelude Ratio> numerator (3 % 2)                     --分子
3
Prelude Ratio> denominator (3 % 2)                 --分母
2
Prelude Ratio> approxRational 1.5123 0.2      --在(1.5123 - 0.2, 1.5123 + 0.2)之间的最简单的分数
3 % 2

numerator:分子
denominator:分母
approxRational :approximate rational 近似分数

转载于:https://www.cnblogs.com/bailiang/archive/2012/06/29/2569881.html

相关文章:

【复盘】端端,棒棒哒!

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 昨晚2…

UI设计培训分享:平面广告设计中的文案表达技巧

UI设计培训包含平面设计&#xff0c;而且其中的应用频率是非常大的&#xff0c;本期小编就为大家详细的介绍一下平面广告设计中的文案表达技巧&#xff0c;希望下面的介绍能够帮助到正在学习UI设计的同学们。 平面广告设计中的文案表达技巧&#xff0c;平面广告中文案的编排创意…

工具类——md5

android的开发过程中&#xff0c;数据安全始终是个问题。这里记录一个md5的工具类&#xff0c;感觉挺好用的。 package com.xzw.test; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class TestMD5 { public static…

【青少年编程】【一级】小狗散步

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 小狗散…

avplayer VS2008编译

错误1. typedef void * POINTER_64 PVOID64;  解决办法 typedef void *PVOID;typedef void * POINTER_64 PVOID64;在它之前加下&#xff1a;#define POINTER_64 __ptr64 官网给出的解决办法 打开winnt.h文件&#xff08;这个是vc安装时带的文件&#xff09; 找到 #include <…

Python培训分享:python爬虫可以用来做什么?

爬虫又被称为网络蜘蛛&#xff0c;它可以抓取我们页面的一些相关数据&#xff0c;近几年Python技术的到来&#xff0c;让我们对爬虫有了一个新的认知&#xff0c;那就是Python爬虫&#xff0c;下面我们就来看看python爬虫可以用来做什么? Python培训分享&#xff1a;python爬虫…

【字符串操作之】返回指定位置的字符和Unicode 字符代码 根据unicode返回字符→→charAt、charCodeAt和fromCharCode...

//charAt和charCodeAt分别返回指定位置处的字符和字符对应的unicode码 var str:String"abcdefg"; var str2str.charAt(1); var str3str.charCodeAt(1); trace(str2); //b trace(str3); //98 fromCharCode是个静态方法&#xff0c;根据unicode返回字符 var str:String…

E667:Fsync failed(how to solve)

今天在学习一个关闭icmp回显的配置时候&#xff0c;vim出现了Fsync failed这个问题&#xff01; 下面来说一下我发生这种情况的原因&#xff08;系统CentOS6.5&#xff09;,那时编辑完后先是输入“q”&#xff0c;正如我们所想&#xff0c;已修改过的配置它会提醒我要把数据写入…

【复盘】第一次灌鸡汤

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 上周日…

Python中常用的数据分析工具(模块)有哪些?

本期Python培训分享&#xff1a;Python中常用的数据分析工具(模块)有哪些?Python本身的数据分析功能并不强&#xff0c;需要安装一些第三方的扩展库来增强它的能力。我们课程用到的库包括NumPy、Pandas、Matplotlib、Seaborn、NLTK等&#xff0c;接下来将针对相关库做一个简单…

Android应用中通过AIDL机制实现进程间的通讯实例

Android中&#xff0c;每个应用程序都有自己的进程&#xff0c;当需要在不同的进程之间传递对象时&#xff0c;该如何实现呢&#xff1f;显然&#xff0c;Java中是不支持跨进程内存共享的&#xff0c;因此要传递对象&#xff0c;需要把对象解析成操作系统能够理解的数据格式&am…

06 Scratch等级考试(一级)模拟题

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 这是第…

区分BundleVersion和BundleShortVersionString

区分BundleVersion和BundleShortVersionString最近遇到了关于检查更新的版本问题了。问题出在了Info.Plist配置中的两个字段&#xff0c;BundleVersion和BundleShortVersionString。搞了两年的开发&#xff0c;第一次看到还有另一个字段的版本。由于版本检测升级的问题&#xf…

UI设计培训技术分享:配色秘籍

设计中颜色的使用是一个非常值得关注的问题&#xff0c;同样的构图、版式&#xff0c;但是不同的颜色搭配给人的感觉就完全不一样&#xff0c;色彩的冷暖&#xff0c;明暗变化琳琅满目&#xff0c;表达不同的氛围与情绪&#xff0c;对于新手设计来讲&#xff0c;配色是个不容小…

安全的Web主机iptables防火墙脚本

下面以自己的Web服务器举例说明之&#xff0c;系统的默认策略是INPUT为DROP&#xff0c;OUTPUT、FORWARD链为ACCEPT&#xff0c;DROP设置得比较宽松&#xff0c;因为我们知道出去的数据包比较安全&#xff1b;为了验证脚本的通用性&#xff0c;我特的查看了服务器的内核及iptab…

用户至上-阿里马马篇

最近经常在阿里巴巴的平台里活动&#xff0c;突然发现&#xff0c;支付宝病了。 当用户生成一单交易后&#xff0c;需要用支付宝支付时&#xff0c;如何保证是用户本人在操作呢&#xff1f; 当初&#xff0c;支付宝是国内第一家很好地解决这个问题的。 解决的途径主要是&#x…

【复盘】小朋友的奇思妙想

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 上周日…

UI设计培训技术分享:搞定萌萌哒可爱图标

UI设计要学到的东西有很多&#xff0c;那么关于图标设计就是其中的一种&#xff0c;很多企业比较忠于萌萌哒的可爱图标&#xff0c;那么如何搞定萌萌哒可爱图标呢?来看看下面UI设计培训技术分享教程。 UI设计培训技术分享&#xff1a;搞定萌萌哒可爱图标 萌萌哒的图标制作有三…

远程处理Remoting

日程 ?应用程序域 ?Remoting和原理 ?编程式和管理式配置实例 用应用程序域 操作系统和运行库环境通常会在应用程序间提供某种形式的隔离。例如&#xff0c;Microsoft Windows 使用进程来隔离应用程序。为确保在一个应用程序中运行的代码不会对其他不相关的应用程序产生不良影…

Datawhale组队学习周报(第002周)

Datawhale组队学习周报&#xff08;第002周&#xff09; &#xff08;一&#xff09;当下 本周&#xff08;02月22日~02月28日&#xff09;&#xff0c;我们正在进行5门开源内容的组队学习。一共建立了6个学习群&#xff0c;参与人数1080人。到目前为止&#xff0c;有4门课开…

LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍

LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍 LVS (Linux Virtual Server) LVS&#xff08;Linux Virtual Server&#xff09;其实就是针对高可伸缩、高可用网络服务的需求&#xff0c;给出了基于IP层和基于内容请求分发的负载平衡调度解决方法&#xff0c;…

UI设计培训分享:设计当中的颜色运用

参加UI设计培训的同学应该都知道&#xff0c;颜色的搭配是学习UI设计非常重要的一步&#xff0c;颜色跟其他的东西一样&#xff0c;适量才会运用得当&#xff0c;如果在你的配色计划中坚持使用马克思三原色的话&#xff0c;你会得到更好的配色结果&#xff0c;为一个项目配色时…

《重构-改善既有代码的设计》读书笔记(二)

12、Lazy Class – 冗赘类 对于几乎没有用的类&#xff0c;运用inline class 将其功能移动。去除这些不值得维护的类。 13、Speculative Generality – 夸夸其谈未来性 对于你现在用不到&#xff0c;觉得总有一天会用到的代码&#xff0c;要警惕。用不上的装置总会挡我们的路&a…

css属性选择符的应用

注释&#xff1a;Internet Explorer 7 &#xff08;以及更高版本&#xff09;在规定了 !DOCTYPE 的情况下支持属性选择器。IE6 及更低的版本不支持属性选择器。 [title]{color:red;}  //为带有 title 属性的所有元素设置样式&#xff1a; [title"website"]{color:r…

【青少年编程】【答疑】控制Scratch异步代码的执行顺序

问题 几天前&#xff0c;我写了一篇图文 对「等待&#xff08;0&#xff09;秒」的理解&#xff0c;发现可以利用「等待&#xff08;0&#xff09;秒」这个积木块来解决Scratch中异步代码的执行顺序问题&#xff0c;即点击绿旗后可以控制多个角色中响应该事件的代码的顺序。 …

UI设计培训分享:学习UI设计有哪些技巧

互联网时代的快速发展&#xff0c;UI设计这个行业在互联网有着一席之地&#xff0c;越来越多的人都想要参加UI设计培训班学习&#xff0c;那么对于初学者来说&#xff0c;学习UI设计有哪些技巧呢?来看看下面的详细介绍吧。 学习UI设计有哪些技巧? 1、基础软件操作 UI设计培训…

07 Scratch等级考试(一级)模拟题

Scratch竞赛交流群已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&#xff09;。 这是第…

遮罩层+软键盘

一&#xff0e;清关里边申请清关 上传图片由于本身就是布局用的图片&#xff0c;微信手机长按会出现保存收藏该图片。 解决方法&#xff1a;添加同级元素充当遮罩层。设置样式&#xff0c;把点击事件从设置的上传图片中移除即可。 1&#xff09;<!-- 图片遮罩层 --> <…

UI培训技术分享:设计大神都在用的10种技法!

越来越多的人开始学习UI设计&#xff0c;想要进群到UI设计这个行业&#xff0c;本期小编为大家介绍的UI培训教程就是关于设计师会经常用到的一些技巧&#xff0c;帮助大家后期的工作中的应用。 UI培训技术分享&#xff1a;设计大神都在用的10种技法! 1.将图片融入背景来使用 同…

正则表达式限制输入整数或小数

string pattern "^\d{1,7}(?:\.\d{0,2}$|$)"; //这是一个格式匹配字符串 其中的含义可以参考http://hi.baidu.com/%D6%C2%D0%F9%B8%F3/blog/item/9060fe35f84f872370cf6c83.html。如果调用以下代码&#xff0c;可以匹配整数位最多为7位&#xff0c;小数位最多为2位…