自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编程语言理论之堆栈机

那么我们可以这么表示一个堆栈,把它写成逗号分隔的一个列表,比如 (1,2,3),列表左边代表上面,比如这里1就是最顶上的。堆栈是一种数据结构,其特点是先入后出,咱们可以想象一个堆箱子的游戏,箱子堆成一大摞,每次只能移动最上面的箱子,因此我们只能做两个操作,把新的箱子添加到这一摞上去,或者把最上面的箱子拿下来。这里x:10的意思是,所有遇到x的地方,替换成10.就是当我们取出来一个x,我们就替换成10.那么只要我们改变x:10,改成其他的数字,就可以把这个计算过程应用到其他的数字上。这个应该是很容易理解的。

2024-11-26 15:40:36 529

原创 半导体入门:最浅显易懂的二极管原理

在PN结这个地方,巧了,一边是5个电子的材料,另一边是3个电子的材料,因此电子就从5电子区域跑到3电子的区域,从而在接触面附近形成一个4电子的区域,也就是凑得齐齐整整。大家一人一桌,老适宜了,不爱走动了。由于二极管的单向性,在电路中有很多的应用,比如我要给一个电池充电,显然,我只希望增加电池的电量,而不希望释放电池的电量,这时候电路里面就可以设置一个二极管,只允许充电方向的电流通过。咱把5电子区域的电子抽走,朝3电子区域灌,好吧,全成了4电子区域,所有的电子老老实实排排坐,大家都躺平了,这就没有了流动。

2024-11-25 08:35:26 619

原创 中文编程之名实对应表达

英文是一种典型的偏向结构化的语言,现在的编程语言则在结构化方面更进一步,所谓结构化语言,就是“以结构定含义”,比如用英文表示a+b,可以说 add a and b,如果用C语言,则可以说add(a, b),总之都是一定的语法结构,每个位置填写的内容,根据其位置代表一定含义。那么,有没有这么一个可能,咱们规定一些模板句子,只要我们按照模板写,计算机按照模板解析其中的关键信息,以及按照模板表示的结构进行处理,就实现了真正符合中文语法特征的程序语言呢?以2为底数,以3为指数,作幂,结果记作幂结果。

2024-11-22 09:30:24 895

原创 探讨中文编程的可能性

先说个事,咱搞了个简单的网页,叫做,用来实现和测试咱探讨的思路,目前还只是一个非常初级的版本,不过日后会逐步升级,感兴趣的道友不妨关注一下。

2024-11-21 08:05:21 1006

原创 从零开始设计一个编程语言-缘起

作为一个中老年攻城狮,谁不想拥有自己的{编程语言|操作系统|CPU|数据库...}呢?开个玩笑。咱正经说说自己的想法,也欢迎道友评论区批评指正。

2024-11-20 07:53:31 1186 1

原创 Haskell中的递归函数

递归可以说是函数式编程里面最强大的思路之一,咱们从一个一个小例子逐步体会递归思维之美妙,其实哪怕是不搞编程的外行,了解递归的思路也大有裨益的。

2024-11-19 15:48:45 1852

原创 Haskell高阶函数之foldr、foldl

foldl和foldr都是fold系列,它们的字面意思是把一个列表“折叠”成一个值,比如阶乘,累加,都是把N个数字给“折叠”成一个数字。

2024-11-19 07:51:32 1163

原创 Haskell中的Monad与输入输出

咱们可以这么想,在某个神秘的地方,有个东西通过对咱们的main函数求值,得到了一个IO Monad容器,然后根据容器里面装的东西,执行一系列的IO动作,巧了,这些动作,就是咱们希望看到的。不然的话,这个屏幕输出显然就不会有的。很显然,咱们简单的理解为一个常规的Haskell函数,比如说,你在Haskell里面写一个 print("Hello World"),在Haskell的概念里面,这个函数实际上只是定义了一个值,也就是它的返回值,然后其他代码如果用到这个返回值,那么Haskell就运行函数给你算出来。

2024-11-18 16:17:49 2049

原创 Haskell中的Currying和Function Composition

Currying的意思是让一个多个参数的函数,绑定一部分参数,然后生成一个新的函数,比如咱们有个函数是sum x y,那么sum 10就是把x绑定到了10,但是y现在还没有绑定,因此sum 10就是一个新的只有一个参数y的函数。Function Composition是一个操作符,符号是 . (英文的句号),具体写法是 f . g,作用是生成一个新的函数,它先把输入传给g,产生的输出,作为输入传给f,最后再输出。先看个简单的小例子。

2024-11-18 07:53:12 746

原创 Haskell中的高阶函数

高阶函数其实就是“函数的函数”,咱们写C程序,或者很多别的什么程序,经常有这种情况,就是你有两坨代码,他们的“大体模式”一样,只是具体操作的东西不太一样,咱举个例子,比如我有一组数据,我要把每个数据都翻倍,在C语言里面,就是个loop,然后我另有一组数据,我要把每个数据给+10,在C语言里面,又是一个loop,这两坨代码,显然不一样,显然又有某些方面是“一样的”,但你想把这些共同点搞成个函数是不大容易,搞成个宏可以,但是不值当的,而且可读性也不高。

2024-11-17 19:32:53 2332

原创 从C到Haskell

既然没了“赋值”一说,Haskell的函数和C的函数就不一样了,它不是描述一个计算过程,而是定义一个数学意义的函数关系。咱们前面说过,Haskell里面=代表左边的东西是右边的东西。因此上面这句话的意思就是以x为自变量,计算f这个函数,它是这跟数学概念上的函数定义是吻合的。实际上,写法也很像,只是数学上咱们会多个括号,写成 f(x)。由于=代表一种定义,那么很显然,有些函数在不同情况下,定义是不一样的。比如说斐波那契,当x是0或者1或者>1,情况是不同的。Haskell里面可以分几次定义一个函数。

2024-11-17 15:20:27 1001

空空如也

空空如也

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

TA关注的人

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