haskell

haskell caf

haskell中,会对特定的form进行缓存。从而产生出了一些使用无穷列表等方案的技巧,用于缓存运行结果。避免重复计算。最典型的例子就是斐波那契数。

foldl,foldr,foldl’

fold是合并列表等重要的操作,其中主要有foldr和foldl,也即从右向左和从左向右。一般来说,后者会优于前者。但在haskell中,并不是这样。

类型类、逻辑与哲学

起因

之前因为作业,写一个多项式计算的实现(来自课《计算机代数基础》,教材料《Ideals, Varieties and Algorithms》)。其实遇到了些问题,在data构建中,传入了太多子类型的参数,又将操作类型类化,导致实例化时出现了编译不通过(主要为无法deduce),根本原因在于对于一个forall的返回值类型,在其它函数中调用时,如果存在约束条件,是无法duduce的。哪怕不是约束,只要存在一定的类型限制就是不行的。这其中查找了相当的内容,也有解决方案,但并没有直接去修正。这源于我对类型类的一些理解问题。

haskell pettern synonyms and view

最近需要写一个多项式相关的东西(代数课练习),而正好看到一个人用pattern做的方程解析,就有点好奇是怎么做到的,然后查找各种资料后得出了结论,主要是用到了ghc的扩展,这里小记一下。

求值环境模型

记录为主

本博文是以SICP第二版3.2节内容为主进行的记录。

Haskell类型限制

起因

起因其实是关于catch以及catchIOError。对于catch,一开始,博主怎么弄都是错误信息,最后的原因是在于lambda中第一个参数的类型是非确认而引起的。

函子,应用函子,单子

Haskell

嗯,继续写函数式。之前有比较过,也提及过关于类型类相关的事。这次主要写写单子吧。主要是这个东西学起来快,但是真的理解有点麻烦啊。

CL与Scheme与Haskell

最近开始学习Haskell了,同样是函数式语言,当然少不了对比。因为Haskell还没有完全学完,所以表达可能有点不太完善,不过现在已经完全想走向haskell了。

Back to Top ↑

server

连接本地docker内的mysql

问题描述

docker开起一个对本地的mysql后(Port已设置),但运行mysql -u root -p后会出错

Web服务器日志分析工具

服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。

owncloud安装问题记录

今天又把服务器安装了一个owncloud玩玩,虽然主要数据还是存在dropbox上的就是了。

这里主要写一下配置问题吧。中间被坑了几次(其实是 本人理解有问题可能)

gitlab安装问题记录

最近开始重新整理服务器,安装gitlab时,出现了不少问题在这里记录一下。

Back to Top ↑

linux

ipv6配置记录

最近配置ipv6,出了不少问题。这里记录一下。

Back to Top ↑

emacs

开发工具相关插error记录

最近因为一些原因intero的插件各种报错。后来结果重新安装一下就搞定了。这里特别记录一下。

从vim转至emacs的理由

笔者以前是使用vim写代码,因为vim和emacs一直处于被讨论的情况,所以很自然就去了解了一下,最开始是spacemacs,然后弃了(不管怎么说,这不过是在用别人的配置。没有意义,这样不如直接用atom什么的)。后来去学习了一下emacs操作。了解了evil。以及elisp(如果学过scheme或者common lisp的话,elisp可以直接上手,基本上没有太大差别。就是文档习惯有点不太一样)。

Back to Top ↑

gentoo

gentoo配置makeopt

问题说明

emerge编译llvm时,各种自动killed,一开始还以为是用的vps限制掉了,后来加上-v后发现ninja居然有-j999的参数

Gentoo清理不需要的包

首先,要说明,这里所有的不需要并非指不依赖,本文主要说明如何处理掉未知的依赖项,然后清理掉不需要的软件。

Back to Top ↑

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_COMPILEcc-wrapper等内建的hook进行了一次理解。问题首先为成两个主要部分。

  1. cc-wrapper是何时被调用的,在cc-wrapper的setup-hook里没有调用到cc-wrapper,且stdenv/setup.sh内也不存在setup-hook以外的特殊脚本调用。
  2. 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中去添加开发开发用的工具),另外一个大问题是部分第三方包的安装。

Back to Top ↑

lisp

求值环境模型

记录为主

本博文是以SICP第二版3.2节内容为主进行的记录。

Back to Top ↑

vim

从vim转至emacs的理由

笔者以前是使用vim写代码,因为vim和emacs一直处于被讨论的情况,所以很自然就去了解了一下,最开始是spacemacs,然后弃了(不管怎么说,这不过是在用别人的配置。没有意义,这样不如直接用atom什么的)。后来去学习了一下emacs操作。了解了evil。以及elisp(如果学过scheme或者common lisp的话,elisp可以直接上手,基本上没有太大差别。就是文档习惯有点不太一样)。

Back to Top ↑

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试用

在虚拟机大概跑了一下,说一下感觉吧。最后的感觉是暂时弃用了。

Back to Top ↑

fedora

Web服务器日志分析工具

服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。

owncloud安装问题记录

今天又把服务器安装了一个owncloud玩玩,虽然主要数据还是存在dropbox上的就是了。

这里主要写一下配置问题吧。中间被坑了几次(其实是 本人理解有问题可能)

Back to Top ↑

common-lisp

CL与Scheme与Haskell

最近开始学习Haskell了,同样是函数式语言,当然少不了对比。因为Haskell还没有完全学完,所以表达可能有点不太完善,不过现在已经完全想走向haskell了。

Back to Top ↑

docker

连接本地docker内的mysql

问题描述

docker开起一个对本地的mysql后(Port已设置),但运行mysql -u root -p后会出错

Back to Top ↑

os

nixpkgs configre与build相关思考

问题主要在于nixpkgs的mkDerivate都干了些什么,为什么可以自动处理cmake等构建。以及在最近,nix使用placeholder "out"来代替了$out。不知道这里的原因。

最近突然想到nix的包一些原理,有点好奇就去看文档,但nix一套的manual太过于简单了,同时部分内容编写有点混乱,或者说比较难查到想查的东西。比如override和callPackage需要看pill才能理解,而pills里写的内容又非常有限。而setup-hook的选项和和一些内建的setup-hook是分放在不同的两个章节且没有跳转或说明。

Back to Top ↑

editor

Back to Top ↑

git

Back to Top ↑

education

Back to Top ↑

macos

Back to Top ↑

type

Back to Top ↑

logic

类型类、逻辑与哲学

起因

之前因为作业,写一个多项式计算的实现(来自课《计算机代数基础》,教材料《Ideals, Varieties and Algorithms》)。其实遇到了些问题,在data构建中,传入了太多子类型的参数,又将操作类型类化,导致实例化时出现了编译不通过(主要为无法deduce),根本原因在于对于一个forall的返回值类型,在其它函数中调用时,如果存在约束条件,是无法duduce的。哪怕不是约束,只要存在一定的类型限制就是不行的。这其中查找了相当的内容,也有解决方案,但并没有直接去修正。这源于我对类型类的一些理解问题。

Back to Top ↑

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.

Back to Top ↑

GitLab

gitlab安装问题记录

最近开始重新整理服务器,安装gitlab时,出现了不少问题在这里记录一下。

Back to Top ↑

Fedora

gitlab安装问题记录

最近开始重新整理服务器,安装gitlab时,出现了不少问题在这里记录一下。

Back to Top ↑

owncloud

owncloud安装问题记录

今天又把服务器安装了一个owncloud玩玩,虽然主要数据还是存在dropbox上的就是了。

这里主要写一下配置问题吧。中间被坑了几次(其实是 本人理解有问题可能)

Back to Top ↑

swapfile

Back to Top ↑

piwik

Web服务器日志分析工具

服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。

Back to Top ↑

goaccess

Web服务器日志分析工具

服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。

Back to Top ↑

nginx

Web服务器日志分析工具

服务器弄好了。之后就是要开始做监控了。主要是想针对流量做监控。比较好的工具有google analytics什么的,不过由于google在国内,嗯,大家懂的。所以只好找找其它的了。

Back to Top ↑

test

Back to Top ↑

python3

Back to Top ↑

scheme

CL与Scheme与Haskell

最近开始学习Haskell了,同样是函数式语言,当然少不了对比。因为Haskell还没有完全学完,所以表达可能有点不太完善,不过现在已经完全想走向haskell了。

Back to Top ↑

functor

函子,应用函子,单子

Haskell

嗯,继续写函数式。之前有比较过,也提及过关于类型类相关的事。这次主要写写单子吧。主要是这个东西学起来快,但是真的理解有点麻烦啊。

Back to Top ↑

applicative

函子,应用函子,单子

Haskell

嗯,继续写函数式。之前有比较过,也提及过关于类型类相关的事。这次主要写写单子吧。主要是这个东西学起来快,但是真的理解有点麻烦啊。

Back to Top ↑

monad

函子,应用函子,单子

Haskell

嗯,继续写函数式。之前有比较过,也提及过关于类型类相关的事。这次主要写写单子吧。主要是这个东西学起来快,但是真的理解有点麻烦啊。

Back to Top ↑

website

Back to Top ↑

quantum-mechanics

Back to Top ↑

note

笔记使用工具

最近对使用的工具整理了一下。一开始是使用印象笔记来做各种笔记整理。后来转到了MWeb,但是因为印象笔记没有比较好的导出方案,所以就还是使用着那个。两者同时。后来学了Org,基本上部分文件从markdown转到的org去了。

Back to Top ↑

functional

Back to Top ↑

type-annotation

Haskell类型限制

起因

起因其实是关于catch以及catchIOError。对于catch,一开始,博主怎么弄都是错误信息,最后的原因是在于lambda中第一个参数的类型是非确认而引起的。

Back to Top ↑

mysql

连接本地docker内的mysql

问题描述

docker开起一个对本地的mysql后(Port已设置),但运行mysql -u root -p后会出错

Back to Top ↑

datebase

连接本地docker内的mysql

问题描述

docker开起一个对本地的mysql后(Port已设置),但运行mysql -u root -p后会出错

Back to Top ↑

dfs

Back to Top ↑

bfs

Back to Top ↑

id

Back to Top ↑

sicp

求值环境模型

记录为主

本博文是以SICP第二版3.2节内容为主进行的记录。

Back to Top ↑

python

求值环境模型

记录为主

本博文是以SICP第二版3.2节内容为主进行的记录。

Back to Top ↑

javascript

求值环境模型

记录为主

本博文是以SICP第二版3.2节内容为主进行的记录。

Back to Top ↑

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

Back to Top ↑

structure

用乘法实现除法

为什么我们需要用乘法来实现除法?首先在计算机运算中,乘法的效率要来得高于除法。其次,除法的实现在电路中非常不容易,而用乘法能实现在一定精度下的除法。

Back to Top ↑

intero

开发工具相关插error记录

最近因为一些原因intero的插件各种报错。后来结果重新安装一下就搞定了。这里特别记录一下。

Back to Top ↑

irony

开发工具相关插error记录

最近因为一些原因intero的插件各种报错。后来结果重新安装一下就搞定了。这里特别记录一下。

Back to Top ↑

ide

Back to Top ↑

command-line

Back to Top ↑

bug

Back to Top ↑

story

娱乐,故事,深度,中庸

前言

在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。

本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。

这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。

Back to Top ↑

depth

娱乐,故事,深度,中庸

前言

在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。

本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。

这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。

Back to Top ↑

moderation

娱乐,故事,深度,中庸

前言

在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。

本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。

这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。

Back to Top ↑

entertainment

娱乐,故事,深度,中庸

前言

在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。

本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。

这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。

Back to Top ↑

stand-alone-complex

娱乐,故事,深度,中庸

前言

在本文中想以攻壳机动队、素晴日、玲音、EVA等几部作品来谈谈故事性与深度。然后又想到了以前非常喜欢的仙古,于是又联想到了中庸一事,中庸文化,推向大众。

本文想得出一个优秀的作品中,应该有哪些东西?娱乐、故事、深度或是中庸。主要是围绕着这几个元素进行自思。

这仅仅是突发奇想才想写这个内容,内容非常零散,仅是写给自己看的。

Back to Top ↑

live

Back to Top ↑

solve

如何解题 笔记

教师应当帮助学生,但不能太多,也不能太少,这样才能使学生有一个合理的工作量

Back to Top ↑

question

你的第一本哲学书

什么东西真的存在?我们能知道任何东西吧?是否真的有是非对错?生命有意义吧?死亡是结束吧?

Back to Top ↑

clean

Gentoo清理不需要的包

首先,要说明,这里所有的不需要并非指不依赖,本文主要说明如何处理掉未知的依赖项,然后清理掉不需要的软件。

Back to Top ↑

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,出了不少问题。这里记录一下。

Back to Top ↑

kernel

linux邮件列表的一点记录

记录点事情吧。主要是今天发现突然收不到邮件列表的邮件了。大概查了下。FAQ有几种可能会出现自动退订。以及今天重新订阅出的问题。

Back to Top ↑

mail

linux邮件列表的一点记录

记录点事情吧。主要是今天发现突然收不到邮件列表的邮件了。大概查了下。FAQ有几种可能会出现自动退订。以及今天重新订阅出的问题。

Back to Top ↑

lang

Back to Top ↑

ocaml

Back to Top ↑

tags

邮件标签与文件夹

现代电子邮件有着很多功能,比如folder、tags等。但是folder是包含在imap协议里的,而tags则。 其中又以gmail最为特殊,完全使用tags,但gmail对tags针对imap进行了folder变换,所以使用上没什么影响。可是对于其它邮箱就不一样了,我们分类应该是用tags还是用folder呢?

Back to Top ↑

folder

邮件标签与文件夹

现代电子邮件有着很多功能,比如folder、tags等。但是folder是包含在imap协议里的,而tags则。 其中又以gmail最为特殊,完全使用tags,但gmail对tags针对imap进行了folder变换,所以使用上没什么影响。可是对于其它邮箱就不一样了,我们分类应该是用tags还是用folder呢?

Back to Top ↑

minori

minori解散感触

2019/02(上个月)底,gal制作公司minori宣布解散。

Back to Top ↑

gal

minori解散感触

2019/02(上个月)底,gal制作公司minori宣布解散。

Back to Top ↑

C

毕设遇到C语言相关记录

起因

最近做毕设,题目是以ARM与Linux为基础的一些设计,由于是第一次接触嵌入式设计,再加之C语言学完已经有快7年了,平时不怎么用。虽然当初刚学习的时候看了相当多C/C++的书籍,很多知识细节也知道,但真写起来还是遇了不少坑,在此记录一下。

Back to Top ↑

pattern

haskell pettern synonyms and view

最近需要写一个多项式相关的东西(代数课练习),而正好看到一个人用pattern做的方程解析,就有点好奇是怎么做到的,然后查找各种资料后得出了结论,主要是用到了ghc的扩展,这里小记一下。

Back to Top ↑

typeclass

类型类、逻辑与哲学

起因

之前因为作业,写一个多项式计算的实现(来自课《计算机代数基础》,教材料《Ideals, Varieties and Algorithms》)。其实遇到了些问题,在data构建中,传入了太多子类型的参数,又将操作类型类化,导致实例化时出现了编译不通过(主要为无法deduce),根本原因在于对于一个forall的返回值类型,在其它函数中调用时,如果存在约束条件,是无法duduce的。哪怕不是约束,只要存在一定的类型限制就是不行的。这其中查找了相当的内容,也有解决方案,但并没有直接去修正。这源于我对类型类的一些理解问题。

Back to Top ↑

object

Back to Top ↑

build

nix setupHook和一些tips

之前已经写过一篇关于nix的配置相关的博客,这次是再一次遇到了新的问题,而对setupHook进一步理解后写出的。主要针对NIX_CFLAGS_COMPILEcc-wrapper等内建的hook进行了一次理解。问题首先为成两个主要部分。

  1. cc-wrapper是何时被调用的,在cc-wrapper的setup-hook里没有调用到cc-wrapper,且stdenv/setup.sh内也不存在setup-hook以外的特殊脚本调用。
  2. setup-hook内,以及各种build-support内,没有任何对NIX_CFLAGS_COMPILE进行配置的地方,在nixpkgs也是同样(除了部分configure等有兼容性问题的地方)。那么nix是如何使用这个变量,而又不去设置CFLAGS等变量的(其实有点剧透了,因为最初的想法应该是何时把NIX_CFLAGS_COMPILE传过去的)。

这两个问题其实是同样的,因为都是wrapper的内容。这两个问题之外,就是一些小细节了。

Back to Top ↑

hook

nix setupHook和一些tips

之前已经写过一篇关于nix的配置相关的博客,这次是再一次遇到了新的问题,而对setupHook进一步理解后写出的。主要针对NIX_CFLAGS_COMPILEcc-wrapper等内建的hook进行了一次理解。问题首先为成两个主要部分。

  1. cc-wrapper是何时被调用的,在cc-wrapper的setup-hook里没有调用到cc-wrapper,且stdenv/setup.sh内也不存在setup-hook以外的特殊脚本调用。
  2. setup-hook内,以及各种build-support内,没有任何对NIX_CFLAGS_COMPILE进行配置的地方,在nixpkgs也是同样(除了部分configure等有兼容性问题的地方)。那么nix是如何使用这个变量,而又不去设置CFLAGS等变量的(其实有点剧透了,因为最初的想法应该是何时把NIX_CFLAGS_COMPILE传过去的)。

这两个问题其实是同样的,因为都是wrapper的内容。这两个问题之外,就是一些小细节了。

Back to Top ↑

fold

foldl,foldr,foldl’

fold是合并列表等重要的操作,其中主要有foldr和foldl,也即从右向左和从左向右。一般来说,后者会优于前者。但在haskell中,并不是这样。

Back to Top ↑

debug

调试器与软件启动过程

起因很简单,在弄emacs的调试器,然后想到的问题。本文主要思考了CC、haskell、python与ruby的调试器。在IDE中,在源代码窗口中打断点其实就相当于在对应上下文或调试器启动时,增加给编译器或解释器使用的中断信息,如C语言中的调试用宏,lldb/gdb/ghci中break相关命令的参数,ruby中的byebug等。

Back to Top ↑

boot

调试器与软件启动过程

起因很简单,在弄emacs的调试器,然后想到的问题。本文主要思考了CC、haskell、python与ruby的调试器。在IDE中,在源代码窗口中打断点其实就相当于在对应上下文或调试器启动时,增加给编译器或解释器使用的中断信息,如C语言中的调试用宏,lldb/gdb/ghci中break相关命令的参数,ruby中的byebug等。

Back to Top ↑

nixos os

nixos install

记录几个nixos安装时的问题。

  1. 关闭bios的secure boot,这是windows强制默认开启的,但这会导致U盘无法启动
  2. 关闭fastboot,这也是windows的,这会导致内核模块iwlwifi无法被加载,从而无法使 用无线网络
Back to Top ↑

tproxy

Back to Top ↑

dns

Back to Top ↑

haskell,

haskell中fmap, liftM, mapM, traverse历史问题记录

问题

fmapliftM看起来做了相同的事,只是类型约束不同,实现上也不一样,但结果是一样,且后者的实现,可以归约到前者。那为什么使用了两种不同的命名,分别实现?同样的还存在于mapMtraverse等地方。

资料

so: traverse archive

so: fmap archive

wiki: amp archive

说明

简单来说就是历史问题,以前的Monad等并没有受Functor约束,在2010的Haskell中已经改正了,但因为历史因素没有删除这些多余的命名。在使用中,推荐使用约束最少的那一个,比如说fmap和liftM,使用fmap。虽然实现上会有点区别,但最后的结果应该是一致的。

Back to Top ↑

code,

haskell中fmap, liftM, mapM, traverse历史问题记录

问题

fmapliftM看起来做了相同的事,只是类型约束不同,实现上也不一样,但结果是一样,且后者的实现,可以归约到前者。那为什么使用了两种不同的命名,分别实现?同样的还存在于mapMtraverse等地方。

资料

so: traverse archive

so: fmap archive

wiki: amp archive

说明

简单来说就是历史问题,以前的Monad等并没有受Functor约束,在2010的Haskell中已经改正了,但因为历史因素没有删除这些多余的命名。在使用中,推荐使用约束最少的那一个,比如说fmap和liftM,使用fmap。虽然实现上会有点区别,但最后的结果应该是一致的。

Back to Top ↑

monoad,

haskell中fmap, liftM, mapM, traverse历史问题记录

问题

fmapliftM看起来做了相同的事,只是类型约束不同,实现上也不一样,但结果是一样,且后者的实现,可以归约到前者。那为什么使用了两种不同的命名,分别实现?同样的还存在于mapMtraverse等地方。

资料

so: traverse archive

so: fmap archive

wiki: amp archive

说明

简单来说就是历史问题,以前的Monad等并没有受Functor约束,在2010的Haskell中已经改正了,但因为历史因素没有删除这些多余的命名。在使用中,推荐使用约束最少的那一个,比如说fmap和liftM,使用fmap。虽然实现上会有点区别,但最后的结果应该是一致的。

Back to Top ↑

traversable

haskell中fmap, liftM, mapM, traverse历史问题记录

问题

fmapliftM看起来做了相同的事,只是类型约束不同,实现上也不一样,但结果是一样,且后者的实现,可以归约到前者。那为什么使用了两种不同的命名,分别实现?同样的还存在于mapMtraverse等地方。

资料

so: traverse archive

so: fmap archive

wiki: amp archive

说明

简单来说就是历史问题,以前的Monad等并没有受Functor约束,在2010的Haskell中已经改正了,但因为历史因素没有删除这些多余的命名。在使用中,推荐使用约束最少的那一个,比如说fmap和liftM,使用fmap。虽然实现上会有点区别,但最后的结果应该是一致的。

Back to Top ↑