自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

i saw you walking in the rain

i crying in the rain for you

  • 博客(191)
  • 资源 (4)
  • 收藏
  • 关注

原创 习题2.38-2.39

但是这块代码和2.18版本的代码比较一下,能更深刻的理解accumulate运算过程。将这些问题与java中的函数式编程合起来思考,会发现lisp写起来真的很方便,得益于数据结构。list结构、first、rest、cons 操作,会极大的简化代码。list结构,像是链表,但是又比链表强大,链表无法组装出树结构。执行结果呢已经写在了注释里,要想让op的操作左右相同,必须满足交换律。通俗点说,就是两个参数交换,不影响计算结果,比如加法,乘法 与运算 或运算等等。这个题目的结果挺简单,上代码。

2024-08-16 15:35:24 141

原创 习题2.37

如果对矩阵运算非常熟悉,这段代码非常容易补足,略微思考一下就行。需要注意的是,这道题的map,可以使用原生语言提供的,反而不能使用以前题目中自己写的map。代码中的w 和v是用来测试的数据,都能正确的执行。执行结果也有人工核算。矩阵乘法实质就是逆转第二个矩阵并遍历,进行矩阵向量乘法。而矩阵向量乘法实质就是遍历矩阵的行,和向量进行点积。部分代码有使用以前题目写过的,我没有复制过来。

2024-08-16 15:14:19 47

原创 习题2.36

【代码】习题2.36。

2024-08-15 13:19:12 15

原创 习题2.35

于是就回归map返回所有叶子节点。在map中也是因为无法递归,无法将树转换为一维list,想了想,定义了cons2方法,可是用系统原生 的map,无论如何调整,都无法把树形结构改成list。忽然想到可能是语言实现层面的差异,于是使用2.33中的map,发现居然一次性就成功了。代码马上就跑出了正确的结果,为了以防万一,还测试了几个特别复杂的结构,均正确计算出了结果。在编写的过程中,犯了一个很严重的错误,导致消耗了我2个小时,就是使用了系统原生的map方法,而不是2.33的map方法,导致执行一直出错。

2024-08-14 09:35:59 28

原创 习题2.34

这个题目,我真的费了好多时间,总结起来,就是对公式理解不到,好不容易理解了公式,又出现计算结果有偏差的情况,反复思考折腾代码,都毫无结果。于是先写了一版自己理解的公式,按照自己的思路写,结果无误,但是无法按照题目要求改造好。唉,唯一的缺陷就是a0要特殊处理。昨天晚上灵机一动,重新思考了公式的本质,立刻想到了办法。很典型的实现逻辑 没有什么复杂的技巧,之所以要定义内部函数,是因为我理解的公式,a0需要特殊处理。心得,遇到问题,还是要先从业务层面思考,需要思考透,才能写出更好的代码,简洁 高效,易修改。

2024-08-14 09:23:17 123

原创 习题2.29

题目终于想通了,贴代码吧,代码只做了浅层数据结构测试,不是很确定更深层次的数据会不会也是成功的。从对比代码看来,修改的主要是跟结构相关的部分,计算部分并没有涉及到。

2024-08-11 10:14:59 25

原创 练习2.33

这个题目比较简单,直接上代码.

2024-08-09 15:23:05 23

原创 练习2.19

不会影响,相当于求排列组合,元素的起始顺序,并不能影响排列组合组数。随机调整顺序后,执行结果如下。

2024-08-09 15:00:14 26

原创 习题2.32

map的第一个参数,是遍历并执行的方法,这个方法使用s的第一个参数,与map遍历时传入的参数合并形成新的序列。这个题目 粗看起来好像是很简单,但是我在实现的时候,真的是废了好大的力气,主要原因有三点,第一,对clojure语言的属性程度不够高,第二,课本语言与clojure语言的差异点,我自以为理解的很透彻,导致了出现很奇异的现象,我找不到解释,一点思路都没有。当if为真时 返回给上一层调用的内容为(()),(())和其他元素做concat就是(() (3) (2)( 2 3))。

2024-08-05 18:26:14 147

原创 习题2.31

相当于将方法以参数的形式传递给方法内部,并在适当的时候调用。这也是函数式编程中经常提及的高阶函数的用法。为后面解释高阶函数做铺垫。对比下原来的做法,实际上就是在原来代码中(square tree) 变成(op tree),其他部分没有变化。题目实际上是想让我们将树的遍历与平方操作分离开,以方便我们实现树的其他操作,比如立方,自加之类的操作。题目的难点是理解op参数应该在什么时候调用。理解透以后这个题就非常简单。

2024-08-05 14:57:17 154

原创 练习2.30

最终能写出第二版,多亏了我沉下心思考了,map和square-tree的调用关系,并在repl窗口手工执行map 查看输出结果。并把square-tree传递给map ,执行提示错误,不知道脑子怎么突然跑去想返回值不对,然后又给map外层加了一个cons。map应该与square-tree两者相互使用,即square-tree 中使用map 遍历树,当发现不是list时,直接平方,当是list时 再次调用map即可。导致写了很多额外的代码,代码写出来,看上去居然和第一版没区别。

2024-08-04 15:44:07 39

原创 记录一个decimalFormat使用的问题

在工作中遇到页面显示的数据格式错误,两个条数据,一条显示正常,一条小数部分没了。用的相同的标签和pattern,去查查怎么回事,原来是理解错了pattern含义。错误pattern = “###,###.##”#是数位符,有数显示,没有数不显示,0自然不显示。正确pattern = “#,###.00”0也是数位,表示有数显示数,没数显示0。简单记录一下,省的下次遗忘。

2024-08-02 15:46:50 116

原创 练习2.27

增加了deep-rever的递归,并且要将递归的结果组织成list再次呈现出来。

2024-07-28 12:18:05 23

原创 习题2.24

说起来也简单,这是一个多层的列表,第一个元素是1 第二个元素是(2 ( 3 4))盒模型其实也很简单,只是没有好工具来画,临时手绘一下。树结构,看完盒模型就懂了。第二层第一个是2 第二个是 (3 4)没啥好说, 先看解释器给出的结果。第三层第一个是 3 第二个是4。

2024-07-27 22:41:14 46

原创 习题2.25~2.26

最外面的first 是从(7)中取出7,紧接着的rest 则是从(5 7)中取出(7),下一个frist则是在((5 7 )9) 中取出(5 7),接连两个rest,是 跳过 1 3 元素。所以我们想到的取数方式,和我们写出的代码,顺序是相反的。第二个,看看代码,是不是跟直觉的顺序不太一样,仔细观察,是不是方向恰好相反?第一个挺简单,也发现不了自己思维上的问题。没啥需要解释的,直接贴代码和执行结果。

2024-07-27 14:58:58 29

原创 习题2.23

不解释了,这么简单的题目。

2024-07-26 17:43:11 28

原创 习题2.22

第二次执行的时候,此时things内容为(3 4 5 6 7),而answer的内容已经变为(4),依此推理,在things内容为空的时候,answer里面的内容已经是(49 36 25 16 9 4),与正确的代码执行过程相比,仅仅是answer的入栈顺序不同导致的,实质上是先合并结果与先迭代后合并结果的区别。先不解释,直接贴出正确的代码,然后再进行执行过程分析,看看正确代码和他两次修改的代码 各自执行过程是什么样的。其实就是将nil作为cons的第一个参数链接到list导致的。

2024-07-26 17:15:02 270

原创 习题2.20

多说一点,这里为啥要定义一个内部函数,主要是因为不定参p 拿到的是个list ,递归的时候,会变成list list嵌套,生成(2 3 4 5 6)((3 4 5 6))这种结构进行参数传递,不方便代码的编写。第一次看见空指针异常,直接傻眼,看着执行出来的步骤,也没有什么奇怪的地方。惨痛的教训啊,本来几分钟就能搞定的问题,结果在不停的自我怀疑与否定中,改来改去,都是不细心的祸,那我们把题目正确的代码贴上来。这个题本来很简单,但是我却花了很长时间,因为盲写的第一版代码,一直报奇怪的错误。

2024-07-26 16:37:38 313

原创 习题2.21

很久没有写习题的代码了,倒不是懒得做习题了,是私事多,状态差,做了很多题,也不想发出来。这段代码非常有助于理解什么是深度优先,什么是广度优先。今天回复的还好,发一个。

2024-07-21 21:29:51 175

原创 习题2.17

获取列表最后一个元素,递归的办法如上。很简单的一个提 代码如下。

2023-10-15 11:19:30 143

原创 习题1. 31

跟习题1.30比较起来,就是两个地方不同 乘法不能乘0 必须是1。两个合并的话 应该也是可以。过程自然是迭代的方式。

2023-10-14 15:14:40 143

原创 习题2.18

题目很简单 将列表反序。用clojure来写,还是有点不习惯。忽然想起来,以前面试遇到过面试题,要求用递归函数对数组反序。原来就是想考察这些内容。因为源语言已经有提供reverse,我就偷懒改个简单的名rever ,上代码。确实挺挑战固有思维的。用了十多年的c系语言。

2023-10-14 14:45:41 168

原创 习题1.27

输出结果显示,对于每一个小于561的数字,他的561次方 和他与561的模相同,也就是通过了测试。对于一个非素数,执行结果显示为no,表明没有逃过费曼检查测试。

2023-08-06 10:22:52 136

原创 js实现sql中的groupby 功能,并提供几个聚合函数

写这段代码的目的呢,有两个,第一个是实现在前端页面对数据进行groupby,第二个就是练习我对函数式编程的理解。我不是一个前端程序员,学习函数式编程模式,主要是为了提高自己平时写代码的内聚性和降低耦合,减少代码复制。代码中有使用了一处for,这个在纯函数式编程中,是不能有的。另外,这个版本还有一个问题,就是avg求出来的值是不对的,暂时没有想好avg应该如何实现。

2023-07-24 18:13:53 473

原创 习题 1.26

根据以前学过的内容,我们知道 在做显示乘法的时候,是直接进行计算的,而在做函数调用的时候,是先进行表达式展开的,直接计算,就相当于2n个变量相乘,而展开后,相当于两个相乘的变量再n次方。这样会明显减少计算量,引发性能异常。问提与语言的执行模式相关,直接相乘,每个项的值,都会重新进行一次展开归并计算。我们先来看看题目要求,题目住说将 square 调用换成了(* x x),结果导致执行时间变慢。

2023-07-15 17:06:26 146

原创 习题1.25

结果不一致,具体原因,是因为这种方式是随机搜索素数的方法,会出现如此情况,这执行结果有点奇怪,需要再次检查代码逻辑及输出.实践出真知,运行看看。然后我们与原版的代码执行结果。

2023-07-15 16:53:26 135

原创 关于spring框架使用bean注解初始化的一点认识

框架在使用bean注解的方法得到对象后,会调用实现了InitializingBean接口的对象的afterPropertiesSet方法,如果方法内再调用,会有可能出现一些奇怪的行为。这个类的afterPropertiesSet方法,连续多次执行,会产生不一样的后果,不具有幂等性。在方法中new以后,调用setcrontaskList方法以后,很自然的调用了afterPropertiesSet方法。没啥想法了,开始各种无端猜疑,有些猜想,自己都不认可,也拿来试试,死马当活马医嘛。

2023-05-09 14:31:13 113

原创 电脑的世界,最慢的果然还是IO

其中FileUtils为同事封装的类,打开内容后发现代码仅仅是调用了apache的io包,追踪进去,发现Apache是先用outputstream打开文件,写入内容,后用IOUtils.closeQuietly函数关闭steam。回想自己写php年代的经验,这种情况,高概率是由于每次读写文件,都重新打开文件写完然后关闭文件导致的。因为数据量有200w以上,初步怀疑的是数据库慢拖累的。总结,封装有利于代码结构,但也隐蔽了很多细节,在性能优化的时候,有必要追寻底层实现逻辑,才能更高效的找出问题,提升效率。

2023-01-30 10:07:21 112

原创 关于nodejs调用c/c++代码的一些感悟

转win10系统,双系统的macair电脑,硬盘有点少,win10总共40G,安装个vc环境,我的硬盘就快爆了。打不开设备,也就没办法推进问题。受网上谋篇不知名的博客影响,写出如上代码,buf里面,怎么都获取不到数据,但是ret的返回值,却又是true,证明我们已经成功的调用到了dll文件的方法。关于vs,不知道为什么,ffi编译的时候,需要vs2013以上(不含2013),我的老花眼,居然看成只支持2013,一番折腾。关于nodejs,因为客户使用node 10.1,所以也是装了卸,吐了吃。

2022-12-02 14:51:07 814

原创 习题1.24

果然是人间悲剧,居然栈溢出了,我也不知道是什么情况。初步判定是代码问题。但是确实无法理解到题目的意图内容。如果后续能get到,我就来修改补充下。

2022-11-05 14:48:54 94

原创 习题1.23

运行结果依然如上一题,无法看出运算速度关系,但是可以肯定的是,壁纸不是2.为什么我也不知道哦。嗯 我也把系统的next贴上来吧,权当我在凑字数。之所以用了next-item 是因为next有语言提供的功能,为了区分,改成next-item。题目如上,依照题目意图实现函数如下。

2022-11-05 13:58:59 76

原创 习题1.22

其中使用到的smallest-deivsior使用的是上一题的代码。约等于3.162,也就是说执行速度应该是3.162倍。的结论,至于为啥,我真不知道,可能是缓存的原因,

2022-11-04 17:14:33 73

原创 excel2003的奇异问题记录

印象中,当年做excel导出的时候,遇到过xls格式的内容,最多输出65535行,当时死活找不到问题,最后查了微软的文档,才发现,原来xls格式,最大支持65535行记录。突然翻到一行 maxcolumn=256的代码,于是去数导出的excel列数,果真只有256列。公司业务的报表系统有导出功能,会导出excel,一般情况下,业务人员都会选择xls后缀的文件名。有一天,开发报表的小妹妹说,导出的excel,缺少了好多列。总结,看到2的倍数或者2的倍数减一的数字,多考虑考虑是不是遇到了系统最大值限制。

2022-10-26 20:32:04 80

原创 习题1.21

先跳过部分题目吧,为什么跳过?主要是跳过的都是数学证明题,还有一个题目,跟么get不到题目意思。本来计划每周一篇,却因为自己的原因,一个月多都没有更新。代码中需要注意的仅有mod求值部分,表达方式与其他Lisp语言不一样。相关代码书本已经给出,我就直接贴上我的clojure版本。看完这本书,记录自己做过的练习题,这就是本博客更新的意义。没有什么特别的要说,就这样吧,争取明天再来一篇。执行题目中的数据,结果如下。

2022-09-11 11:26:48 94

原创 习题1.17

久拖未决的习题1.17终于来了。这拖的好久。我都快忘记语法规则了。话不多说,先看题目要求 题目要点,使用对数步骤计算出结果。简单来看,跟上一道题目,在结构上是相同的。因此,采用复制修改代码的套路。这里特别说明一点 ,mydouble 是因为double在clojure里面已经存在,是定义为double类型的含义,所以改用这个名字。执行结果如下图 负数的情况,支持的还是不太好,结果如下 实质是因为死循环了,修改代码如下执行结果...

2022-07-10 11:31:49 117

原创 jacob使用异常解决

一开始使用的是jboss7.0,因为安全要求,需要升级到Jboss7.3,做好测试环境后,开始发现jboss会莫名其妙退出。仔细检查后发现,居然是段错误。我一个java程序员,处理段错误是没有经验的。依据网上的内容,先查看hs_err_pidxxx.log文件仔细一看,居然是Jacob报错了,心想,不该啊,只是升级个jboss,关它什么事情。出了问题就要解决,最初,怀疑是没有做多线程访问安全导致,于是,先改为单利模式,使用synchronized来修饰关键代码。进行测试,依旧会挂掉,依旧是段错误。摸不着头脑

2022-06-27 13:39:22 1058 3

原创 习题1.16

代码实现,版本1(defn square[x] (* x x))(defn fast-expt[b n] (cond (= 0 n) 1 (even? n) (square (fast-expt b (/ n 2))) :else (* b (fast-expt b (- n 1))) ))执行结果user=> (fast-expt 2 10) 1024user=> (fast-expt 3 3) 27user=>...

2022-05-30 21:19:53 71

原创 习题1.15

题目内容有两个小问题,我先给出答案,然后罗列出代码,给出执行结果,分析执行过程。a)p被调用了5次b)步数是对数级,空间是也是,使用的空间仅仅与步骤相关,也就是步骤的线性函数。代码(defn abs[x](if (> x 0) x (- 0 x) ) )(defn cube [x](* x x x))(defn p[x](- (* 3 x) (* 4 (cube x))))(defn sine [angle] (if (not (> (abs angle)...

2022-05-18 16:35:42 114

原创 习题1.14

习题1.13是纯数学的证明,这里直接跳过,做1.14先列出实现代码(defn first-denomination [kinds-of-coins] (cond (= kinds-of-coins 1) 1 (= kinds-of-coins 2) 5 (= kinds-of-coins 3) 10 (= kinds-of-coins 4) 25 (= kinds-of-coins 5) 50 ) )(defn cc[amount

2022-05-18 15:24:28 82

原创 习题1.12

题目如上,实现帕斯卡三角,当年学习c语言的时候已经实现过一次,(defn f [x y] (if (> x y) 0 (if (= x 1) 1 (if (= y 1) 1 (+ (f (- x 1) (- y 1)) (f x (- y 1)) ) ) ) ))(defn f1 [x leve...

2022-05-04 17:11:12 438

nginxWindows版,自带rtmp服务模块

nginxWindows版,自带rtmp服务模块,需要放在c盘根目录下面使用。

2016-08-07

EditPlus_3.2_en(注册机+英文版)

EditPlus 3.20英文版 +注册机

2010-09-10

分页sql生成器(有界面)

分页sql生成器(有界面)

2008-04-07

产生分页 sql的代码

产生分页 sql的代码,能按照要求生成 sql 代码 没有界面

2008-03-31

空空如也

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

TA关注的人

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