Vico Bill< 刘 利 波 > 的个人网站

记录关于学习、工作中的技术点滴

C,C++,Rust,Ruby爱好者;热衷于游戏开发、任务自动化与跨平台;沉迷于游戏引擎与图形表现;深信'简单、多元'哲学的力量。


访问主页

笔记集锦-Lisp


语法:
() 空表
(obj1 obj2 ...)
(procedure arg ...)

(car (list))    取第一个元素
(cdr (list))    取列表剩余元素
(cons a b)      2个参数构建成列表
(list a b ...)  cons相同,构建列表,但可允许任意参数
(quote (expr))  将表达式当作列表 
'(expr)         引用的语法糖

((car (list + - * /)) 2 3)


(let ((var expr) ...) body1 body2 ...)  绑定值到变量中
(let ([var expr] ...) body1 body2 ...)  同上,但可以通过方括号写法更明显

let可以绑定任何值给符号,绑定的变量只在letbody中可见(类似局部变量)


(lambda (var ...) body1 body2 ...) 定义新的procedure

示例:
((lambda (x) (* x x))(* 3 4)) => (p (* 3 4)) => (p 12) => (* 12 12) => 144


(define var0 
    (lambda (var1 ... varn)
    e1 e2 ...))
可简化为:
(define (var0 var1 ... varn) 
    e1 e2 ...
    )

(define var0
    (lambda varr 
        e1 e2 ...))
可简化为:
(define (var0 . varr)
    e1 e2 ...)

最近的文章

笔记集锦-Lisp

参考 各个Reliable UDP对比Reliable UDP一览:那些能替代TCP的RUDP方案背景:笔者负责的一个项目在实时性方面有着较高要求,低延时是一个技术指标,希望能够尽可能减少延迟,来优化服务体验。所以需要在UDP方面进行一些调研。而我们的数据协议是建立在可靠网络传输协议之上的,它的数据包之间有一些关联,不允许丢包。因而将TCP迁移到使用Reliable UDP可能是一个优化的方向。ps:本文系搬运、整理、部分翻译,再加上自己的一些理解,实验数据来源于网络。本文还处于调研阶段,...…

继续阅读
更早的文章

游戏引擎-UE4-构建工具

在谈论构建工具之前,快速回顾一下C/C++的构建工具史。在Unix C或早期时代,一直到现在,C语言的构建,通常由以下指令处理:./configuremakemake install完成从源码编译,到安装完成的过程。其中以make工具为主,Makefile是核心配置,用来设置:编译选项、编译目标、依赖文件、库管理等等。Makefile写得了,一气呵成感觉好。Makefile可 跨编译器:clang,gcc(cygwin/gcc,mingw/gcc), msvc,watcom等 跨架构编...…

继续阅读