自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 函数和函数类型

Ocaml的函数有几个特点:1)传统的在Ocaml中写作:

2021-05-27 16:56:23 94

原创 Ocaml 对偶、元组

1.对偶、元组Ocaml语言中,构造乘积类型的操作符是 ✳️。类型A和类型B的乘积类型记 A✳️B。构造乘积类型的元素的操作符是逗号“,”。 如果a属于类型A,b属于类型B,那么“a,b”属于类型A*B。二元乘积类型的元素称为对偶,多元乘积类型中的元素称为元组。对偶是两个元素的元组。2.访问元组内部访问元组内部成分的一种方法是使用一种基于模式匹配的拓展的let局部定义:...

2021-05-27 16:44:17 172

原创 Ocaml print、read、^、String、if

1.print_string和print_endline:print_string用于打印一个字符串print_endline也可以用于打印字符串并在结束后打印一个换行符号。2.read_line:用于读入一行字符串,不要为此预先分配输入缓冲区,可以直接用let定义变量来保存输入结果。其中my put是从键盘输入进去的。输入的字符串也可以不用变量保存而直接使用:3.^:合并两个字符串的操作,只需要用中缀连接符号"^“即可。4.下面是一些String的用法:int_of_string

2021-05-27 16:19:16 403

原创 Ocaml——Let

1.并行定义如果这个变量在并行定义之前没有定义过,那么会出现变量无定义的错误。例如:2.Let局部定义语法格式如下:let<变量> = <表达式1> in <表达式2>在这个格式中,变量不再是全局有效的变量,他的作用域局限于<表达式2>3,Let的并行结构例如:解释一下,在这里中间的b=a=3最前头的a=3,而不是并行结构中的a=2;4.String程序可以创建一个任意长度的字符串,也可以用let定义把一个变量和一个字符串相关联,例子

2021-05-27 15:49:29 385

原创 OCaml语言学习——引言

OCaml的类型分析被称为“类型推导”或“类型合成”。它是指通过对表达式的分析自动推导出表达式的类型。OCaml是强类型的语言,他对代码进行严格的类型检查。OCaml语言的推导能力,例如这个例子,系统对表达式进行类型分析,推导这个表达式是整形,从而确定a的类型为整形。例子:在OCaml语言中,一个变量可以合法地重复定义:每做一次定义,就会把之前的定义覆盖掉,因此,let既不是变量声明,也不是变量赋值,而是动态地建立了变量和值的一个关联。我们可以把这个关联看成是一个对偶:(变量,值)。...

2021-05-27 15:32:13 809

原创 SF学习心得

关于intros的理解我们通常会说“‘假设’ 存在一个任意自然数 n…”。而在形式化证明中,这是用 intros n 来实现的,它会将量词从证明目标转移到当前假设的’上下文’中。这里可以理解为,intros n m将第一个假设forall n m:nat放入上下文,假设它成立。intros H将第二个假设n=m放入上下文,假设它成立。关于case的理解其第一个参数先被 match 匹配。 但此处 + 的第一个参数 n 未知,而 eqb 的第一个参数 n + 1 是复杂表达式,二者均无法化简。

2021-05-26 15:46:12 236

原创 Coq Art第二章 类型和表达式

解释辖域简称辖域scope,辖域定义了符号如何解释,辖域可以被开启,开启辖域的命令是Open Scope s.想要获得辖域s的更多信息,使用命令Print Scope s.在开启辖域后我们可以定义:Open Scope type.Definition Qatate :=R * R.如果没有开启辖域,我们必须这样写:Definition Qatate :=(R * R)%type.第二章 类型和表达式...

2021-05-14 17:34:47 129

原创 java学习笔记——第10章 多态、包装类、内部类和枚举类(三)

10.6内部类内部类:是指在一个外部类的内部再定义一个类,依附于外部类而存在的。使用内部类最吸引人的原因是每个内部类都能独立继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类没有影响。...

2021-04-29 18:55:38 69

原创 java学习笔记——第10章 多态、包装类、内部类和枚举类(二)

10.2引用类型在java中,及时释放内存最稳妥的方法就是使用完对象之后立即执行object=null语句。 下面通过四种饮用类型强调垃圾回收方法System.gc()来解决内存泄漏。10.2.2使用instanceof运算符instanceof是一个二元操作符,和= =、>、<等是同一类元素。作用是测试它左边的对象是否为右边的类的实例,返回一个boolean类型的instanceof例子:public class ceshi{ public static void main(

2021-04-29 16:09:36 66

原创 java学习笔记——第10章 多态、包装类、内部类和枚举类(一)

10.1多态何为多态多态(polumorphism)性是面向对象程序设计代码的一个重要机制。java语言的多态总是子类型的多态。 在面向对象中,通常把多态分为两大类(特定的、通用的),四个小类(强制的、重载的、参数的、包含的),如图:在这样一个体系中,多态表现为多种形式的能力。通用的多态:引用有相同结构类型的大量对象,他们有共同的特性。特定的多态:小部分没有相同特征的对象。强制的:一种隐式实现类型转换的方法。重载的:将一个标志符用作多个意义。参数的:为不同类型的参数提供相同的操作。包含的

2021-03-26 19:50:04 102

原创 java学习笔记——第九章 继承、重载、接口和构造器(二)

9.3隐藏和封装Java中的封装封装是面向对象三大特征之,指将对象的状态信息隐藏在对象内部,不允许外部程序直控访问对象内部信息,而是见通过该类所提供的方法来实现对内部信息的操作和访问。封装是面向对象编程语言对客观世界的模拟,客观世界里的属性都被隐藏在对象内部,外界无法直接操作和修改。●隐藏类的实现细节。●让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问。●进行数据检查,从而有利于保证对象信息的完整性。●便于修改,提高代码的可维护性。为了在Jav

2021-03-26 16:49:20 88

原创 java学习笔记——第九章 继承、重载、接口和构造器(一)

9.1类的继承类的继承:是新的类从已有的类中取得已有的特性。类的派生:是从已有的类产生新类的过程,这个已有的类称为基类或父类。父类和子类在java中,通常把子类称为父类的直接子类,把父类称为子类的直接超类。例如类A继承了类B的子类,则必须符合下面的要求。C是B的子类,A是C的子类,则A是B的子类;一个类只能有一个父类,extends前只能有一个类,不支持多重继承。例子://定义类是jitwoclass jitwo { String name; int age;

2021-03-25 17:48:40 117

原创 java学习笔记——第八章 类和方法(二)

8.4使用方法java中的方法不能独立存在,他必须属于一个类或者一个对象,因此方法也不能像函数那样被独立执行。因此必须使用类或对象来调用。总结:方法不能独立定义,方法只能在类体中定义。逻辑上讲,方法要么属于该类本身,要么属于该类的一个对象。永远不能独立执行方法,执行方法必须使用类或对象作为调用者。调用方法也必须使用类或对象作为主调者,如果在声明方法时包含形参声明,则调用方法时必须给这些形参指定参数值。调用方法时,实际传给形参的参数值也被称为实参。例如:public class chuan

2021-03-25 14:09:16 362 1

原创 java学习笔记——第八章 类和方法(一)

8.1面向对象8.2类class person{//人具有age属性int age;//人具有name属性String name;//人具有shut方法void shut(){ System.out.println("My name is"+name);}public static void main(String[] args){//类及类属性和方法的使用 person Tom=new person Tom,age=27; Tom.name="TOM"; Tom.sh

2021-03-22 17:35:22 118

原创 On java 8 笔记——第六章 初始化和清理

有两个安全性问题:初始化和清理。利用构造器保证初始化在 Java 中,类的设计者通过构造器保证每个对象的初始化。如果一个类有构造器,那么 Java 会在用户使用对象之前(即对象刚创建完成)自动调用对象的构造器方法,从而保证初始化:构造器名称与类名相同。以下实例包含了一个构造器的类:// housekeeping/SimpleConstructor.java// Demonstration of a simple constructorclass Rock { Rock() { // 这是

2020-12-04 16:52:56 95 1

原创 On java 8 笔记——第五章 控制流

在 Java 中,涉及的关键字包括 if-else,while,do-while,for,return,break 和选择语句 switch。true和false所有的条件语句都利用条件表达式的“真”或“假”来决定执行路径。举例: a == b。它利用了条件表达式 == 来比较 a 与 b 的值是否相等。 该表达式返回 true 或 false。// control/TrueFalse.javapublic class TrueFalse { public static void main(Str

2020-12-04 16:09:38 79

原创 Java关键字/修饰符

Java修饰符Java语言提供了很多修饰符,主要有两类:访问修饰符非访问修饰符修饰符用来定义类、方法或者变量,通常放在语句的最前端。我们通过下面的例子来说明:public class ClassName { // ...}private boolean myFlag;static final double weeks = 9.5;protected static final int BOXWIDTH = 42;public static void main(String[] a

2020-12-04 11:34:26 120

原创 Java protected关键字理解

protected的可见性在于两点:基类的 protected 成员是包内可见的,并且对子类可见;若子类与基类不在同一包中,那么在子类中,子类实例可以访问其从基类继承而来的protected方法,而不能访问基类实例的protected方法。实例1:package p1;public class Father1 {protected void f() {} // 父类Father1中的protected方法}package p1;public class Son1 extends

2020-12-04 11:15:22 125

原创 接四:Java类型变量

Java类型变量Java支持的变量类型有:类变量:独立于方法之外的变量,用 static 修饰。实例变量:独立于方法之外的变量,不过没有 static 修饰。局部变量:类的方法中的变量。实例:public class Variable{ static int allClicks=0; // 类变量 String str="hello world"; // 实例变量 public void method(){ int i =0; // 局部变量

2020-12-04 10:06:22 54

原创 On java 8 笔记——第四章 运算符

赋值基本类型的赋值都是直接的。如果是对象赋值,对一个对象进行操作时,实际上操作的是它的引用。例如:class Tank { int level;}public class Assignment { public static void main(String[] args) { Tank t1 = new Tank(); Tank t2 = new Tank(); t1.level = 9; t2.level =

2020-12-04 09:45:05 93

原创 On java 8 笔记——第三章 万物皆对象

对象操纵创建一个String 引用,用于保存单词或语句,这里我们只创建了一个 String 对象的引用。String s;通常更安全的做法是:创建一个引用的同时进行初始化,例如:String s = "asdf";对象创建“引用”用来创建“对象”,在Java中,我们通常使用new 操作符来创建一个新对象。new关键字代表:创建一个新的对象实例,例如前面的代码也可以这样写:String s = new String("asdf");数据存储Java确定了每种基本类型的内存占用大小。

2020-12-03 13:24:52 62

原创 Shell基本操作

更改目录: cd <路径>cd … 移动到上级目录pushd <路径> 记住来源的同时移动到其他目录,popd 返回来源目录列举:ls 列举出当前目录下所有的文件和子目录名(不包含隐藏文件),创建目录:Mac/Linux 系统:mkdir示例:mkdir booksWindows 系统:md示例:md books移除文件:Mac/Linux 系统:rm示例:rm somefile.javaWindows 系统:del示例:del so.

2020-12-02 14:45:16 46

原创 On java 8 笔记——第二章 java安装

JDK安装Ubuntu安装: sudo apt-get update sudo apt-get install default-jdk检验安装: java -version编辑器安装atom安装wget https://github.com/atom/atom/releases/download/v1.7.4/atom-amd64.debsudo dpkg -i atom-amd64.deb

2020-12-02 14:42:00 80

原创 On java 8 笔记——第一章 对象的概念

On java 8 笔记——第一章 对象的概念抽象面向对象程序设计方法:1. 万物皆对象。2. 程序是一组对象,通过消息来传递告知彼此该做什么。3. 每个对象都有自己的存储空间,可容纳其他对象。4. 每个对象都有一种类型。5. 同一类所有对象都能接收相同的消息。更为简洁的描述:一个对象具有自己的状态,行为和标识。这意味着对象有自己的内部数据(提供状态)、方法 (产生行为),并彼此区分(每个对象在内存中都有唯一的地址)。接口程序中使用基本关键字 class 来引入新的类型(class 和

2020-12-02 14:29:14 278

原创 Java——重写与重载

重写重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。例1:class Animal{ public void move(){ System.out.println("动物可以移动"); }} class Dog extends Animal{ public void move(){ System.out

2020-12-02 13:31:41 103

原创 On java 8 笔记——对继承的理解

继承继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。兔子和羊属于食草动物类,狮子和豹属于食肉动物类。食草动物和食肉动物又是属于动物类。虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。类的继承格式:在Java中使用:extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:class 父类 {} class 子类 exten

2020-12-02 13:16:32 86

原创 DataStructure

数据结构声明829计算机专业基础第一章 单链表功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入声明诸多算法思想及代码...

2019-12-24 12:00:43 234

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除