用 Angular 弄了一个背单词的网站——eliseos.org

Like Like Love Haha Wow Sad Angry 1 弄了一个背单词的网站——eliseos.org,或者叫 jingtu.io。(这俩名字其实是一个意思。当然这个网站不主要是为了背单词而开发的,不过目前只有背单词的还能用。) 它是 Angular 开发的,同时用了一些时新的技术,比如前端的 redux-observable, graphql, apollo client,后端的 inversify, sequelize-typescript,另外我还自己搞了一些用于自动生成 graphql schema 的 decorator—— @……

什么是 Haskell 中的 GADT(广义代数数据类型)?

Like Like Love Haha Wow Sad Angry 2111 先看看没有 GADT 的时候我们在做啥。最简单的,比如定义一个列表: List a = Nil | Cons a (List a) 它是在做啥呢? 先看等号左边,它首先定义了一个叫 List 的 type constructor,它接受一个类型,并返回一个新的类型。其实就是类型的函数。 再看右边,它告诉我们有两种方式获得一个类型为 List a 的值,一个叫 Nil,一个叫 Cons a (List a)。 Nil 的话,你直接写 Nil,它就是一个 List a 类型的值,至……

例说 C 语言类型声明

Like Like Love Haha Wow Sad Angry 31 C 语言的类型声明,由于某些历史局限性,在某些情况下显得相当复杂。下面让我们来渐渐深入 C 语言类型声明的谜团,一探究竟。   指针和数组 一重声明 以下这些问题,我相信即使是最基本的初学者也不会有太大困难: 你会声明数组吗? int a[5]; // 包含 5 个元素。 你会声明指针吗? int *a; 二重声明 你会声明双重指针吗? Read by: 125 Like Like Love Haha Wow Sad Angry 31

【C++ 模板元编程入门】在编译期实现 Peano 数

Like Like Love Haha Wow Sad Angry 1 基本知识 类型的函数 我们都知道模板可以接受类型作为「参数」。同样地我们也可以有「返回值」,从而构造类型的函数。基本的范式是: template<class T> struct Computed { using type = T; } 这就构造了一个名为 Computed 的,接收一个类型参数,返回这个类型本身的函数,用法如 Computed<float>::type,这个类型应当还是 `float`。 为什么要包一层 struct?这是因为 C++ 不支持对……

一个不正确的 TypeScript 类型定义引发的血案

Like Like Love Haha Wow Sad Angry 2 Mongoose 的 TypeScript 类型定义并不完全正确! 昨天晚上在 bgs 研究了(或者说调试了)XGS 写的 nodejs 服务器项目。他在用 koa 作为服务器,mongodb 作为数据存储,写一个不知道什么项目(似乎名为「写作者平台」/ “Write’s Platform”)。反正当时还处于很初级的阶段,只有两个路由,一个 get,一个 post,后者是用来向 mongodb 提交一篇文章的。在测试过程中,他发现了一个问题——他在……