- haskell 16
- server 9
- linux 7
- emacs 6
- gentoo 6
- nix 5
- lisp 3
- vim 3
- nixos 3
- fedora 2
- common-lisp 2
- docker 2
- os 2
- editor 2
- git 2
- education 2
- macos 2
- lang 2
- type 2
- logic 2
- jekyll 1
- GitLab 1
- Fedora 1
- owncloud 1
- swapfile 1
- piwik 1
- goaccess 1
- nginx 1
- test 1
- python3 1
- scheme 1
- functor 1
- applicative 1
- monad 1
- website 1
- quantum-mechanics 1
- note 1
- functional 1
- type-annotation 1
- mysql 1
- datebase 1
- dfs 1
- bfs 1
- id 1
- sicp 1
- python 1
- javascript 1
- spacemacs 1
- configure 1
- pkg 1
- cabal 1
- stack 1
- ssh 1
- portage 1
- structure 1
- intero 1
- irony 1
- ide 1
- command-line 1
- bug 1
- story 1
- depth 1
- moderation 1
- entertainment 1
- stand-alone-complex 1
- live 1
- solve 1
- question 1
- clean 1
- ruby 1
- stackoverflow 1
- recursion 1
- zsh 1
- shell 1
- startup 1
- purchase 1
- lambda 1
- ipv6 1
- ocaml 1
- minori 1
- gal 1
- C 1
- pattern 1
- typeclass 1
- object 1
- build 1
- hook 1
- fold 1
- debug 1
- boot 1
- nixos os 1
- tproxy 1
- dns 1
- haskell, 1
- code, 1
- monoad, 1
- traversable 1
- os dev linux nixos windows 1
- syntax 1
- chinese 1
- composition 1
- hash 1
- sha256 1
haskell
haskell caf
haskell中,会对特定的form
进行缓存。从而产生出了一些使用无穷列表等方案的技巧,用于缓存运行结果。避免重复计算。最典型的例子就是斐波那契数。
foldl,foldr,foldl’
fold是合并列表等重要的操作,其中主要有foldr和foldl,也即从右向左和从左向右。一般来说,后者会优于前者。但在haskell中,并不是这样。
REFS code is engineering, types are science
转:haskell如何让你的生活更简单
引用:haskell相关文章列表
转:你是否有编写haskell的能力
类型类、逻辑与哲学
起因
之前因为作业,写一个多项式计算的实现(来自课《计算机代数基础》,教材料《Ideals, Varieties and Algorithms》)。其实遇到了些问题,在data构建中,传入了太多子类型的参数,又将操作类型类化,导致实例化时出现了编译不通过(主要为无法deduce),根本原因在于对于一个forall的返回值类型,在其它函数中调用时,如果存在约束条件,是无法duduce的。哪怕不是约束,只要存在一定的类型限制就是不行的。这其中查找了相当的内容,也有解决方案,但并没有直接去修正。这源于我对类型类的一些理解问题。
haskell pettern synonyms and view
最近需要写一个多项式相关的东西(代数课练习),而正好看到一个人用pattern做的方程解析,就有点好奇是怎么做到的,然后查找各种资料后得出了结论,主要是用到了ghc的扩展,这里小记一下。
编程语言的思考
递归中的栈溢出
haskell包管理处理
求值环境模型
记录为主
本博文是以SICP第二版3.2节内容为主进行的记录。
Haskell类型限制
起因
起因其实是关于catch
以及catchIOError
。对于catch,一开始,博主怎么弄都是错误信息,最后的原因是在于lambda中第一个参数的类型是非确认而引起的。
函数式编程语言之多语句思考
函子,应用函子,单子
Haskell
嗯,继续写函数式。之前有比较过,也提及过关于类型类相关的事。这次主要写写单子吧。主要是这个东西学起来快,但是真的理解有点麻烦啊。
CL与Scheme与Haskell
最近开始学习Haskell了,同样是函数式语言,当然少不了对比。因为Haskell还没有完全学完,所以表达可能有点不太完善,不过现在已经完全想走向haskell了。
server
使用Gentoo的数个理由及注意点
Gentoo
关于Gentoo是什么这里就说了,不知道的朋友请自行查找或者不要使用这个东西了。
gentoo USE 注意点
Use flag注意点
通过ssh连接虚拟机
在vps中安装gentoo
基本过程和平时安装一样的。参考Handbook就好了。需要注意的有几点。
连接本地docker内的mysql
问题描述
docker开起一个对本地的mysql后(Port已设置),但运行mysql -u root -p
后会出错
Web服务器日志分析工具
服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。
linux虚拟交换内存配置(文件)
其实这个东西是非常简单的。但是因为服务器只是偶尔配置一次,所以还是写个博文记录一下吧。
owncloud安装问题记录
今天又把服务器安装了一个owncloud玩玩,虽然主要数据还是存在dropbox上的就是了。
这里主要写一下配置问题吧。中间被坑了几次(其实是 本人理解有问题可能)
gitlab安装问题记录
最近开始重新整理服务器,安装gitlab时,出现了不少问题在这里记录一下。
linux
建立v2ray透明代理时遇到的问题记录
记录几个小问题,主要内容请参考文档。
ipv6配置记录
最近配置ipv6,出了不少问题。这里记录一下。
使用Gentoo的数个理由及注意点
Gentoo
关于Gentoo是什么这里就说了,不知道的朋友请自行查找或者不要使用这个东西了。
gentoo USE 注意点
Use flag注意点
通过ssh连接虚拟机
在vps中安装gentoo
基本过程和平时安装一样的。参考Handbook就好了。需要注意的有几点。
linux虚拟交换内存配置(文件)
其实这个东西是非常简单的。但是因为服务器只是偶尔配置一次,所以还是写个博文记录一下吧。
emacs
开发环境debug
操作系统与IDE或编辑器
最近有点纠结是用ide还是用editor,对应的就引来的操作系统的问题。
开发工具相关插error记录
最近因为一些原因intero
的插件各种报错。后来结果重新安装一下就搞定了。这里特别记录一下。
宏,eval,函数
本文以lisp为主
emacs自配置或使用spacemacs
从vim转至emacs的理由
笔者以前是使用vim写代码,因为vim和emacs一直处于被讨论的情况,所以很自然就去了解了一下,最开始是spacemacs
,然后弃了(不管怎么说,这不过是在用别人的配置。没有意义,这样不如直接用atom什么的)。后来去学习了一下emacs操作。了解了evil。以及elisp(如果学过scheme或者common lisp的话,elisp可以直接上手,基本上没有太大差别。就是文档习惯有点不太一样)。
gentoo
gentoo配置makeopt
问题说明
emerge编译llvm时,各种自动killed,一开始还以为是用的vps限制掉了,后来加上-v
后发现ninja居然有-j999
的参数
Gentoo清理不需要的包
首先,要说明,这里所有的不需要并非指不依赖,本文主要说明如何处理掉未知的依赖项,然后清理掉不需要的软件。
使用Gentoo的数个理由及注意点
Gentoo
关于Gentoo是什么这里就说了,不知道的朋友请自行查找或者不要使用这个东西了。
gentoo USE 注意点
Use flag注意点
通过ssh连接虚拟机
在vps中安装gentoo
基本过程和平时安装一样的。参考Handbook就好了。需要注意的有几点。
nix
nix derivation
今天在想要不要把home-manager内的zsh plugins换成impurer的fetch时想到的问题。nix derivation是怎么计算hash的,为什么使用fetchFromGethub
这类由stdenv定义的fetchur就没有问题,而原装的就不行呢?
简单来说就是看源代码。
nix计算目录sha值访方法
nixpkgs有一个fetchFromGitHub的方法,里面需要计算sha值,但是但是是但是文档里没有说这个值是怎么算出来的,不同于一般的文件是很容易计算的,这里是一个目录啊,文档上还写着”extracted directory“。很是迷惑。
nix setupHook和一些tips
之前已经写过一篇关于nix的配置相关的博客,这次是再一次遇到了新的问题,而对setupHook进一步理解后写出的。主要针对NIX_CFLAGS_COMPILE
和cc-wrapper
等内建的hook进行了一次理解。问题首先为成两个主要部分。
- cc-wrapper是何时被调用的,在cc-wrapper的setup-hook里没有调用到cc-wrapper,且
stdenv/setup.sh
内也不存在setup-hook以外的特殊脚本调用。 - setup-hook内,以及各种build-support内,没有任何对
NIX_CFLAGS_COMPILE
进行配置的地方,在nixpkgs也是同样(除了部分configure等有兼容性问题的地方)。那么nix是如何使用这个变量,而又不去设置CFLAGS
等变量的(其实有点剧透了,因为最初的想法应该是何时把NIX_CFLAGS_COMPILE
传过去的)。
这两个问题其实是同样的,因为都是wrapper的内容。这两个问题之外,就是一些小细节了。
nixpkgs configre与build相关思考
问题主要在于nixpkgs的mkDerivate
都干了些什么,为什么可以自动处理cmake等构建。以及在最近,nix使用placeholder "out"
来代替了$out
。不知道这里的原因。
最近突然想到nix的包一些原理,有点好奇就去看文档,但nix一套的manual太过于简单了,同时部分内容编写有点混乱,或者说比较难查到想查的东西。比如override和callPackage需要看pill才能理解,而pills里写的内容又非常有限。而setup-hook的选项和和一些内建的setup-hook是分放在不同的两个章节且没有跳转或说明。
nixos使用与开发配置
开始上手nixos,nix与nixpkgs其实相对还好,都没有什么问题。但这之间遇到了相当多问题。大体分为几点。一个是开发环境,nix-shell的沙盒并不能很方便的对lsp等开发过程中使用的工具提供支持(我们不可能在shell.nix中去添加开发开发用的工具),另外一个大问题是部分第三方包的安装。
lisp
Back to Top ↑vim
Why modality and chording
From: noctuid/dotfiles
emacs自配置或使用spacemacs
从vim转至emacs的理由
笔者以前是使用vim写代码,因为vim和emacs一直处于被讨论的情况,所以很自然就去了解了一下,最开始是spacemacs
,然后弃了(不管怎么说,这不过是在用别人的配置。没有意义,这样不如直接用atom什么的)。后来去学习了一下emacs操作。了解了evil。以及elisp(如果学过scheme或者common lisp的话,elisp可以直接上手,基本上没有太大差别。就是文档习惯有点不太一样)。
nixos
nixpkgs configre与build相关思考
问题主要在于nixpkgs的mkDerivate
都干了些什么,为什么可以自动处理cmake等构建。以及在最近,nix使用placeholder "out"
来代替了$out
。不知道这里的原因。
最近突然想到nix的包一些原理,有点好奇就去看文档,但nix一套的manual太过于简单了,同时部分内容编写有点混乱,或者说比较难查到想查的东西。比如override和callPackage需要看pill才能理解,而pills里写的内容又非常有限。而setup-hook的选项和和一些内建的setup-hook是分放在不同的两个章节且没有跳转或说明。
nixos使用与开发配置
开始上手nixos,nix与nixpkgs其实相对还好,都没有什么问题。但这之间遇到了相当多问题。大体分为几点。一个是开发环境,nix-shell的沙盒并不能很方便的对lsp等开发过程中使用的工具提供支持(我们不可能在shell.nix中去添加开发开发用的工具),另外一个大问题是部分第三方包的安装。
nixos试用
在虚拟机大概跑了一下,说一下感觉吧。最后的感觉是暂时弃用了。(至2020年,已经完全切换过来了)
fedora
Web服务器日志分析工具
服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。
owncloud安装问题记录
今天又把服务器安装了一个owncloud玩玩,虽然主要数据还是存在dropbox上的就是了。
这里主要写一下配置问题吧。中间被坑了几次(其实是 本人理解有问题可能)
common-lisp
函数式编程语言之多语句思考
CL与Scheme与Haskell
最近开始学习Haskell了,同样是函数式语言,当然少不了对比。因为Haskell还没有完全学完,所以表达可能有点不太完善,不过现在已经完全想走向haskell了。
docker
建立v2ray透明代理时遇到的问题记录
记录几个小问题,主要内容请参考文档。
连接本地docker内的mysql
问题描述
docker开起一个对本地的mysql后(Port已设置),但运行mysql -u root -p
后会出错
os
nixpkgs configre与build相关思考
问题主要在于nixpkgs的mkDerivate
都干了些什么,为什么可以自动处理cmake等构建。以及在最近,nix使用placeholder "out"
来代替了$out
。不知道这里的原因。
最近突然想到nix的包一些原理,有点好奇就去看文档,但nix一套的manual太过于简单了,同时部分内容编写有点混乱,或者说比较难查到想查的东西。比如override和callPackage需要看pill才能理解,而pills里写的内容又非常有限。而setup-hook的选项和和一些内建的setup-hook是分放在不同的两个章节且没有跳转或说明。
操作系统与IDE或编辑器
最近有点纠结是用ide还是用editor,对应的就引来的操作系统的问题。
editor
Why modality and chording
From: noctuid/dotfiles
操作系统与IDE或编辑器
最近有点纠结是用ide还是用editor,对应的就引来的操作系统的问题。
git
Back to Top ↑education
数学教育
学习与教育,思考其一
随便写写罢了。
macos
Back to Top ↑lang
编程语言语法的思考
不同编程语言有不同的语法,语法主要影响可读性与编写效率。大部分语言的语法都比较相近,但一些语法设计上的细微差异会对编程过程产生不同的体验(特指程序员的心情,不是指思考方式、算法实现等理论知识)。
本文会提及如下语言C++、rust、go、python、ruby、haskell、lisp,但其中rust、go仅仅学过语法,没有实践过,所以观点非常片面!所以观点非常片面!所以观点非常片面!
编程语言的思考
type
Back to Top ↑logic
对逻辑与物质的思考
源:《自然辩证法》作业
感觉写了点东西,随便放一下。
类型类、逻辑与哲学
起因
之前因为作业,写一个多项式计算的实现(来自课《计算机代数基础》,教材料《Ideals, Varieties and Algorithms》)。其实遇到了些问题,在data构建中,传入了太多子类型的参数,又将操作类型类化,导致实例化时出现了编译不通过(主要为无法deduce),根本原因在于对于一个forall的返回值类型,在其它函数中调用时,如果存在约束条件,是无法duduce的。哪怕不是约束,只要存在一定的类型限制就是不行的。这其中查找了相当的内容,也有解决方案,但并没有直接去修正。这源于我对类型类的一些理解问题。
jekyll
Welcome to Jekyll!
You’ll find this post in your _posts
directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve
, which launches a web server and auto-regenerates your site when a file is updated.
To add new posts, simply add a file in the _posts
directory that follows the convention YYYY-MM-DD-name-of-post.ext
and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
Jekyll also offers powerful support for code snippets:
def print_hi(name)
puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll’s GitHub repo. If you have questions, you can ask them on Jekyll Talk.
And here test a picture.
GitLab
gitlab安装问题记录
最近开始重新整理服务器,安装gitlab时,出现了不少问题在这里记录一下。
Fedora
gitlab安装问题记录
最近开始重新整理服务器,安装gitlab时,出现了不少问题在这里记录一下。
owncloud
owncloud安装问题记录
今天又把服务器安装了一个owncloud玩玩,虽然主要数据还是存在dropbox上的就是了。
这里主要写一下配置问题吧。中间被坑了几次(其实是 本人理解有问题可能)
swapfile
linux虚拟交换内存配置(文件)
其实这个东西是非常简单的。但是因为服务器只是偶尔配置一次,所以还是写个博文记录一下吧。
piwik
Web服务器日志分析工具
服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。
goaccess
Web服务器日志分析工具
服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。
nginx
Web服务器日志分析工具
服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。
test
Back to Top ↑python3
Back to Top ↑scheme
CL与Scheme与Haskell
最近开始学习Haskell了,同样是函数式语言,当然少不了对比。因为Haskell还没有完全学完,所以表达可能有点不太完善,不过现在已经完全想走向haskell了。
functor
函子,应用函子,单子
Haskell
嗯,继续写函数式。之前有比较过,也提及过关于类型类相关的事。这次主要写写单子吧。主要是这个东西学起来快,但是真的理解有点麻烦啊。
applicative
函子,应用函子,单子
Haskell
嗯,继续写函数式。之前有比较过,也提及过关于类型类相关的事。这次主要写写单子吧。主要是这个东西学起来快,但是真的理解有点麻烦啊。
monad
函子,应用函子,单子
Haskell
嗯,继续写函数式。之前有比较过,也提及过关于类型类相关的事。这次主要写写单子吧。主要是这个东西学起来快,但是真的理解有点麻烦啊。
website
Back to Top ↑quantum-mechanics
《上帝掷骰子》-量子力学史话 笔记
一个希望与众多科学问题搏斗的人最好还是远离大都市。 —— 亥姆霍兹 to Hz
note
笔记使用工具
最近对使用的工具整理了一下。一开始是使用印象笔记来做各种笔记整理。后来转到了MWeb,但是因为印象笔记没有比较好的导出方案,所以就还是使用着那个。两者同时。后来学了Org,基本上部分文件从markdown转到的org去了。
functional
Back to Top ↑type-annotation
Haskell类型限制
起因
起因其实是关于catch
以及catchIOError
。对于catch,一开始,博主怎么弄都是错误信息,最后的原因是在于lambda中第一个参数的类型是非确认而引起的。
mysql
连接本地docker内的mysql
问题描述
docker开起一个对本地的mysql后(Port已设置),但运行mysql -u root -p
后会出错
datebase
连接本地docker内的mysql
问题描述
docker开起一个对本地的mysql后(Port已设置),但运行mysql -u root -p
后会出错
dfs
深度优先,广度及迭代深度优先
在学习搜索的时候,对这三个,主要是后二者有一点点混乱,所以这此记录一下。
bfs
深度优先,广度及迭代深度优先
在学习搜索的时候,对这三个,主要是后二者有一点点混乱,所以这此记录一下。
id
深度优先,广度及迭代深度优先
在学习搜索的时候,对这三个,主要是后二者有一点点混乱,所以这此记录一下。
sicp
求值环境模型
记录为主
本博文是以SICP第二版3.2节内容为主进行的记录。
python
求值环境模型
记录为主
本博文是以SICP第二版3.2节内容为主进行的记录。
javascript
求值环境模型
记录为主
本博文是以SICP第二版3.2节内容为主进行的记录。
spacemacs
Back to Top ↑configure
Back to Top ↑pkg
Back to Top ↑cabal
Back to Top ↑stack
Back to Top ↑ssh
Back to Top ↑portage
gentoo USE 注意点
Use flag注意点
structure
用乘法实现除法
为什么我们需要用乘法来实现除法?首先在计算机运算中,乘法的效率要来得高于除法。其次,除法的实现在电路中非常不容易,而用乘法能实现在一定精度下的除法。
intero
开发工具相关插error记录
最近因为一些原因intero
的插件各种报错。后来结果重新安装一下就搞定了。这里特别记录一下。
irony
开发工具相关插error记录
最近因为一些原因intero
的插件各种报错。后来结果重新安装一下就搞定了。这里特别记录一下。
ide
操作系统与IDE或编辑器
最近有点纠结是用ide还是用editor,对应的就引来的操作系统的问题。
command-line
操作系统与IDE或编辑器
最近有点纠结是用ide还是用editor,对应的就引来的操作系统的问题。
bug
Back to Top ↑story
娱乐,故事,深度,中庸
前言
在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。
本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。
这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。
depth
娱乐,故事,深度,中庸
前言
在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。
本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。
这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。
moderation
娱乐,故事,深度,中庸
前言
在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。
本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。
这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。
entertainment
娱乐,故事,深度,中庸
前言
在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。
本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。
这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。
stand-alone-complex
娱乐,故事,深度,中庸
前言
在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。
本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。
这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。
live
Back to Top ↑solve
如何解题 笔记
教师应当帮助学生,但不能太多,也不能太少,这样才能使学生有一个合理的工作量
question
你的第一本哲学书
什么东西真的存在?我们能知道任何东西吧?是否真的有是非对错?生命有意义吧?死亡是结束吧?
clean
Gentoo清理不需要的包
首先,要说明,这里所有的不需要并非指不依赖,本文主要说明如何处理掉未知的依赖项,然后清理掉不需要的软件。
ruby
Back to Top ↑stackoverflow
Back to Top ↑recursion
Back to Top ↑zsh
Back to Top ↑shell
Back to Top ↑startup
Back to Top ↑purchase
Back to Top ↑lambda
Back to Top ↑ipv6
ipv6配置记录
最近配置ipv6,出了不少问题。这里记录一下。
ocaml
Back to Top ↑minori
minori解散感触
2019/02(上个月)底,gal制作公司minori宣布解散。
gal
minori解散感触
2019/02(上个月)底,gal制作公司minori宣布解散。
C
毕设遇到C语言相关记录
起因
最近做毕设,题目是以ARM与Linux为基础的一些设计,由于是第一次接触嵌入式设计,再加之C语言学完已经有快7年了,平时不怎么用。虽然当初刚学习的时候看了相当多C/C++的书籍,很多知识细节也知道,但真写起来还是遇了不少坑,在此记录一下。
pattern
haskell pettern synonyms and view
最近需要写一个多项式相关的东西(代数课练习),而正好看到一个人用pattern做的方程解析,就有点好奇是怎么做到的,然后查找各种资料后得出了结论,主要是用到了ghc的扩展,这里小记一下。
typeclass
类型类、逻辑与哲学
起因
之前因为作业,写一个多项式计算的实现(来自课《计算机代数基础》,教材料《Ideals, Varieties and Algorithms》)。其实遇到了些问题,在data构建中,传入了太多子类型的参数,又将操作类型类化,导致实例化时出现了编译不通过(主要为无法deduce),根本原因在于对于一个forall的返回值类型,在其它函数中调用时,如果存在约束条件,是无法duduce的。哪怕不是约束,只要存在一定的类型限制就是不行的。这其中查找了相当的内容,也有解决方案,但并没有直接去修正。这源于我对类型类的一些理解问题。
object
对逻辑与物质的思考
源:《自然辩证法》作业
感觉写了点东西,随便放一下。
build
nix setupHook和一些tips
之前已经写过一篇关于nix的配置相关的博客,这次是再一次遇到了新的问题,而对setupHook进一步理解后写出的。主要针对NIX_CFLAGS_COMPILE
和cc-wrapper
等内建的hook进行了一次理解。问题首先为成两个主要部分。
- cc-wrapper是何时被调用的,在cc-wrapper的setup-hook里没有调用到cc-wrapper,且
stdenv/setup.sh
内也不存在setup-hook以外的特殊脚本调用。 - setup-hook内,以及各种build-support内,没有任何对
NIX_CFLAGS_COMPILE
进行配置的地方,在nixpkgs也是同样(除了部分configure等有兼容性问题的地方)。那么nix是如何使用这个变量,而又不去设置CFLAGS
等变量的(其实有点剧透了,因为最初的想法应该是何时把NIX_CFLAGS_COMPILE
传过去的)。
这两个问题其实是同样的,因为都是wrapper的内容。这两个问题之外,就是一些小细节了。
hook
nix setupHook和一些tips
之前已经写过一篇关于nix的配置相关的博客,这次是再一次遇到了新的问题,而对setupHook进一步理解后写出的。主要针对NIX_CFLAGS_COMPILE
和cc-wrapper
等内建的hook进行了一次理解。问题首先为成两个主要部分。
- cc-wrapper是何时被调用的,在cc-wrapper的setup-hook里没有调用到cc-wrapper,且
stdenv/setup.sh
内也不存在setup-hook以外的特殊脚本调用。 - setup-hook内,以及各种build-support内,没有任何对
NIX_CFLAGS_COMPILE
进行配置的地方,在nixpkgs也是同样(除了部分configure等有兼容性问题的地方)。那么nix是如何使用这个变量,而又不去设置CFLAGS
等变量的(其实有点剧透了,因为最初的想法应该是何时把NIX_CFLAGS_COMPILE
传过去的)。
这两个问题其实是同样的,因为都是wrapper的内容。这两个问题之外,就是一些小细节了。
fold
foldl,foldr,foldl’
fold是合并列表等重要的操作,其中主要有foldr和foldl,也即从右向左和从左向右。一般来说,后者会优于前者。但在haskell中,并不是这样。
debug
调试器与软件启动过程
起因很简单,在弄emacs的调试器,然后想到的问题。本文主要思考了CC、haskell、python与ruby的调试器。在IDE中,在源代码窗口中打断点其实就相当于在对应上下文或调试器启动时,增加给编译器或解释器使用的中断信息,如C语言中的调试用宏,lldb/gdb/ghci中break相关命令的参数,ruby中的byebug等。
boot
调试器与软件启动过程
起因很简单,在弄emacs的调试器,然后想到的问题。本文主要思考了CC、haskell、python与ruby的调试器。在IDE中,在源代码窗口中打断点其实就相当于在对应上下文或调试器启动时,增加给编译器或解释器使用的中断信息,如C语言中的调试用宏,lldb/gdb/ghci中break相关命令的参数,ruby中的byebug等。
nixos os
nixos install
记录几个nixos安装时的问题。
- 关闭bios的secure boot,这是windows强制默认开启的,但这会导致U盘无法启动
- 关闭fastboot,这也是windows的,这会导致内核模块iwlwifi无法被加载,从而无法使 用无线网络
tproxy
建立v2ray透明代理时遇到的问题记录
记录几个小问题,主要内容请参考文档。
dns
建立v2ray透明代理时遇到的问题记录
记录几个小问题,主要内容请参考文档。
haskell,
haskell中fmap, liftM, mapM, traverse历史问题记录
问题
fmap
与liftM
看起来做了相同的事,只是类型约束不同,实现上也不一样,但结果是一样,且后者的实现,可以归约到前者。那为什么使用了两种不同的命名,分别实现?同样的还存在于mapM
与traverse
等地方。
资料
说明
简单来说就是历史问题,以前的Monad等并没有受Functor约束,在2010的Haskell中已经改正了,但因为历史因素没有删除这些多余的命名。在使用中,推荐使用约束最少的那一个,比如说fmap和liftM,使用fmap。虽然实现上会有点区别,但最后的结果应该是一致的。
code,
haskell中fmap, liftM, mapM, traverse历史问题记录
问题
fmap
与liftM
看起来做了相同的事,只是类型约束不同,实现上也不一样,但结果是一样,且后者的实现,可以归约到前者。那为什么使用了两种不同的命名,分别实现?同样的还存在于mapM
与traverse
等地方。
资料
说明
简单来说就是历史问题,以前的Monad等并没有受Functor约束,在2010的Haskell中已经改正了,但因为历史因素没有删除这些多余的命名。在使用中,推荐使用约束最少的那一个,比如说fmap和liftM,使用fmap。虽然实现上会有点区别,但最后的结果应该是一致的。
monoad,
haskell中fmap, liftM, mapM, traverse历史问题记录
问题
fmap
与liftM
看起来做了相同的事,只是类型约束不同,实现上也不一样,但结果是一样,且后者的实现,可以归约到前者。那为什么使用了两种不同的命名,分别实现?同样的还存在于mapM
与traverse
等地方。
资料
说明
简单来说就是历史问题,以前的Monad等并没有受Functor约束,在2010的Haskell中已经改正了,但因为历史因素没有删除这些多余的命名。在使用中,推荐使用约束最少的那一个,比如说fmap和liftM,使用fmap。虽然实现上会有点区别,但最后的结果应该是一致的。
traversable
haskell中fmap, liftM, mapM, traverse历史问题记录
问题
fmap
与liftM
看起来做了相同的事,只是类型约束不同,实现上也不一样,但结果是一样,且后者的实现,可以归约到前者。那为什么使用了两种不同的命名,分别实现?同样的还存在于mapM
与traverse
等地方。
资料
说明
简单来说就是历史问题,以前的Monad等并没有受Functor约束,在2010的Haskell中已经改正了,但因为历史因素没有删除这些多余的命名。在使用中,推荐使用约束最少的那一个,比如说fmap和liftM,使用fmap。虽然实现上会有点区别,但最后的结果应该是一致的。
os dev linux nixos windows
efi、systemd-boot与grub及双系统问题
最近在工作站上装nixos遇到了引导问题。大概为我配置了grub,但是开机却不能引导,行为是直接启动了windows,简直就像是uefi没有查找到linux的efi一样(事实也是的)。
这个问题其实之前也有遇到过,但当时因为不明不白的给跳过了,所以没有详细去理解,甚至没有发现这个问题。因此在此记录。
syntax
编程语言语法的思考
不同编程语言有不同的语法,语法主要影响可读性与编写效率。大部分语言的语法都比较相近,但一些语法设计上的细微差异会对编程过程产生不同的体验(特指程序员的心情,不是指思考方式、算法实现等理论知识)。
本文会提及如下语言C++、rust、go、python、ruby、haskell、lisp,但其中rust、go仅仅学过语法,没有实践过,所以观点非常片面!所以观点非常片面!所以观点非常片面!
chinese
中文排版标准
之前做一个repo时,提到了中英文混排时的规范问题。
composition
中文排版标准
之前做一个repo时,提到了中英文混排时的规范问题。
hash
sha256 等 hash 算法结果长度
sha256 在不同场景计算出了不同长度的字符串,类似的也存在于其它 hash 算法中。
sha256
sha256 等 hash 算法结果长度
sha256 在不同场景计算出了不同长度的字符串,类似的也存在于其它 hash 算法中。