逻辑学与Prolog学习笔记
int a = 3 + 5; 很自然。如果Matrix a, b要加呢?没有运算符重载,a + b是不行的,只能add(a, b). int a = add(3, 5)也行。如果函数名可以用+呢?+(a, b); +(3, 5). 如果括号和逗号是多余的呢?3 + 5叫中缀表达式,+35叫前缀表达式或波兰式,还有35+后缀/逆波兰式。前缀的好处之一是没有歧义,例如+3*25和+32*5分别相当于中缀的3+2*5和(3+2)*5。中缀要规定运算符优先级,前后缀不需要,为啥我没明白,和“结合律”有关?add是个操作/动作,想到动词verb,动词有宾语,不止一个。is和give也是动词。tom is cat (不聊英语语法),give man horse, give horse man. 动词做谓语,谓词。
Prolog是个好语言,可我咋觉得发明者和写例子的人的英语都诡异呢? cat(tom), friend(sheldon, kripie). 没有catize(猫化)这个词,有befriend这个词。is是动词,除了描述动作,还有/更多陈述事实/命题。有多元谓词。
推理即搜索?
Tom BE Cat
Cat HAVE Leg
>>>Tom HAVE Leg
yes
Penny, Leonard, Raj BE Person
Penny LIKE Leonard; Leonard LIKE Penny; Raj LIKE Penny
this BE_GOOD_COUPLE that IF this LIKE that AND that LIKE this
>>>Penny BE_GOOD_COUPLE Raj
no
Kitchen CONNECTED_TO Hall; Hall CONNECTED_TO Bedroom
Robot AT Kitchen
DEFINE here GOTO there AS NOLONGER AT here and AT there IF AT here AND here CONNECTED_TO there
>>>Robot GOTO Bedroom
no
>>>why
Bedroom no CONNECTED_TO Kitchen
>>>try harder
yes
1, 2, 3 IN A; 2, 4 IN B
%%
a INTERSECT b IS FOREACH x IF x IN a AND x IN b
Prolog一会listing,一会write。不至于不支持\n的写法吧,换个行还得来个nl子句。C++的endl也没啥意思,有flush啊,\n自动flush呗。"%9.2f %7.3f" 用stream的format来写非常啰嗦。
组合爆炸。2个不同的台球,上面分别印着1, 2。从里面取0到2个,组合数=C(2,0) + C(2,1) + C(2,2) = 4 = 2**2. 想象一个机器,每个球下面有个铁片挡着,搬动开关,铁片打开球落下,记为取出。开关从都不按到都按有00 01 10 11四种。2,3,4共4-2+1=3个,3-0+1=4. 背包问题不用写递归。
2>1: 真命题; 3<2: 假命题。>: 关系。(2>1) > (3>2): 不是命题。汪曾祺书里提到某君垂直于黑板。(苹果 比 桔子 好吃) 比 (桔子 比 葡萄 好吃) 好吃。
逻辑学里都是公理吧。
sort是个操作/过程。C里多个procedure 保留字(reserved word)不好吗?python里sorted是个被sort了的对象。def只说了要define,没说定义过程还是函数。for (i = 13; i < 42; i = i + 2) formidable_algorithm(important_data). for为啥是key word? 可能做编译器的人扫描输入,look for for. 我做编译器的,我哪知道你data important不。
class Cat;
tom = Cat();
tom.have_property('leg')
person = { 'Penny', 'Leonard', 'Raj' }
penny.likes = { 'Leonard', 'Raj' }
a = {1, 2, 3}
2 in a
也许能用python的exec()和eval()搞点好玩的:exec('leonard = Person()'); exec('penny.likes += leonard'); 好像也是个费时间换费空间。搜索不需要堆栈吗?
搞个图,节点放Tom, Penny, Lenord,有向的边放谓词(二元)?推理图,推背图。:-)
逻辑学与Prolog学习笔记的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- 高频面试题:一张图彻底搞懂Spring循环依赖
1 什么是循环依赖? 如下图所示: BeanA类依赖了BeanB类,同时BeanB类又依赖了BeanA类.这种依赖关系形成了一个闭环,我们把这种依赖关系就称之为循环依赖.同理,再如下图的情况: 上图中 ...
- hdu 1502 Regular Words(DP)
题意: 一个单词X由{A,B,C}三种字母构成. A(X):单词X中A的个数.B(X),C(X)同理. 一个单词X如果是regular word必须满足A(X)=B(X)=C(X)且对于X的任意前缀有 ...
- JAVA笔记7__接口应用/Object类/简单工厂模式/静态代理模式/适配器模式
/** * 接口应用 */ public class Main { public static void main(String[] args) { Person p = new Person(&qu ...
- cm3 逆向分析
目录 cm3 逆向分析 前言 逆向分析 cm3 逆向分析 前言 这道题没加壳,也没加密算法,主要看代码逻辑. 逆向分析 代码很短,一共这么几句. 看提示知道只让我们输入w.s.a.d这几个字符,并且用 ...
- Redis安装、配置和卸载
1.安装 mkdir /usr/local/redis 添加目录 wget [http://download.redis.io/releases/redis-4.0.1](http://downloa ...
- 【浏览器】聊聊DOM
[浏览器]聊聊DOM 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 作为前端开发,在以前的工作中大多是和DOM打交道,到 ...
- 集合概述&集合之List接口
集合与数组存储概述 集合.数组都是对多个数据进行存储操作的结构,简称Java容器.此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中) 数组存储的特点: ...
- MySQL:由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题
我只是搬用工,记录一下 方法一: 安装这个微软常用运行库合集(https://www.repaik.com/), 链接:https://pan.baidu.com/s/1r4JJaUKjw-y1g3l ...
- NCF 中如何将Function升级到FunctionRender
简介 历史的车轮在不断的向前推进,NCF也在不断的迭代更新,只为成为更好的NCF 如果你之前没有用过NCF可以跳过这个文档,直接去下载最新的NCF源码进行实践. NCF仓库地址:https://git ...
- 在Express 中获取表单请求体数据
在Express 中获取表单请求体数据 获取 GET 请求参数 获取 POST 请求体数据 安装 配置 获取 GET 请求参数 Express 内置了一个 API , 可以直接通过 req.query ...