haskell学习笔记<1>--基本语法
七月记录:整个七月就在玩,参加夏令营,去遨游。。。。 八月份需要开始复习,正等书的这个过程突然想起一直没有完成的学习-haskell,所以当前的目标是用haskell制作一个局域网通信的小工具,要求:一,完成工具要求 二,完备的设计文档 三,报告
学习资料:http://fleurer-lee.com/lyah/chapters.htm haskell趣学指南 (后续还会有别的书,rwh等)
基本语法:
类型:
常见基本类型: Int:一般是32bit整数
Integer:无限大整数
Float:单浮点
Double:双浮点
Bool:布尔型
Char:字符型
常见类型类:
Eq:可判断性类型 例如Int等
Ord:可判断大小型
Show:可用字符串表示的类型
Read:将一个字符串转为Read的类型 单用需类型注释 如read “5” :: Int
Num:表示数字的类型类
Integral:同样是表示数字的类型类。Num包含所有的数字:实数和整数。而Intgral仅包含整数,其中的成员类型有Int和Integer。
Floating:仅包含浮点类型:Float和Double。
List and Tuple:
List:多维链表 Tuple:元组
List:类型相同,不定长
Tuple:类型可以不相同,但是单元数据数目一定
语法:
if-else语句 格式: if 表达式
then 表达式
else 表达式
if-else语句本身也是一个表达式,这里体现出函数式语言的一个特点:一切皆数
模式匹配:模式匹配通过检查数据的特定结构来检查其是否匹配,并按模式从中取得数据。
注意:记得一定通配语句
where绑定:where绑定中定义的名字只对本函数可见,可用模式匹配,函数等
let in表达式: 格式:let [bindings] in [expressions]
let绑定本身是个表达式,而where绑定则是个语法结构
case :
格式:
case expression of pattern -> result
pattern -> result
pattern -> result
...
用途 1:if-else或者case等
lucky :: (Integral a) => a -> String
lucky = "Lucky Number seven!"
lucky x ="Sorry,you're out of luck,pal!"
用途 2:递归
--quicksort
quickSort :: (Ord a) => [a] -> [a]
quickSort [] = []
quickSort [x] = [x]
quickSort (x:xs) = (quickSort small) ++ [x] ++ (quickSort big)
where
small = [y | y<-xs,y<=x]
big = [y | y<-xs,y>x]
haskell学习笔记<1>--基本语法的更多相关文章
- python3.4学习笔记(一) 基本语法 python3不向下兼容,有些语法跟python2.x不一样
python3.4学习笔记(一) 基本语法 python3不向下兼容,有些语法跟python2.x不一样,IDLE shell编辑器,快捷键:ALT+p,上一个历史输入内容,ALT+n 下一个历史输入 ...
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- CUBRID学习笔记 41 sql语法之select
cubrid的中sql查询语法 SELECT [ ] [{TO | INTO} ][FROM ] [WHERE ][GROUP BY {col_name | expr} [ASC | DESC], . ...
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...
- Angular 5.x 学习笔记(1) - 模板语法
Angular 5.x Template Syntax Learn Note Angular 5.x 模板语法学习笔记 标签(空格分隔): Angular Note on github.com 上手 ...
- Webpack4 学习笔记三 ES6+语法降级为ES5
前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 Webpack 将es6.es7语法降级为es5 需要通过 babel JavaScript编译器. 安装: npm i babel ...
- tensorflow学习笔记(1)-基本语法和前向传播
tensorflow学习笔记(1) (1)tf中的图 图中就是一个计算图,一个计算过程. 图中的constant是个常量 计 ...
随机推荐
- (转)javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
在JSP中,页面链接是使用web路径的,但如果JavaBean要访问本地文件读取配置信息的话,是需要文件的本地路径的.如果你在写 Bean的时候直接将本地路径写进去,那网站的路径就不能变化,丧 ...
- C--指针数组
一个变量有一个地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,他们都有相应的地址,所谓数组的指针是指数组的其实地址,数组元素的指针是数组元素的地址. 一个数组是有连续的一块内存单元组成 ...
- java阅读器hdfs单纯demo
周围环境:eclipse + eclipse hadoop插入. hadoop + rhel6.4 package test; import java.io.IOException; import j ...
- JavaScript中,关于new的那些事
这篇文章是自己对new学习过程中的一些理解,有不对的地方希望指出,接受组织的批评教育. 导火线,前段时间学习jQuery的时候,看到源码中有这样一段: jQuery = function(select ...
- JAVA进阶-注解
注解元数据分为4部分分别为Target,Documented,Inherited,Retention: Target>指定被注解的注解仅仅能使用在某个类型上;ElementType指定其类型:能 ...
- jQuery选中该复选框来实现/全部取消/未选定/获得的选定值
<!DOCTYPE html> <html> <head> <script type="text/javascript" src=&quo ...
- MyEclipse 设置全部jsp的编码为UFT-8 的方法
- (12) MVC5 EF6 Bootstrap3
MVC5 + EF6 + Bootstrap3 (12) 新建数据 系列教程:MVC5 + EF6 + Bootstrap3 上一节:MVC5 + EF6 + Bootstrap3 (11) 排序.搜 ...
- Asp.net vNext 2
Asp.net vNext 学习之路(二) View component(视图组件)应该是MVC6 新加的一个东西,类似于分部视图.本文将演示在mvc 6中 怎么添加视图组件以及怎么在视图中注入一个服 ...
- 编程算法 - 二部图确定 代码(C)
二部图确定 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 给定一个具有n个顶点的图. 要给图上每一个顶点染色, 而且要使相邻的顶点颜色不同. ...