Category Archives: 无用心得

Not that useful experience.

抽象价值之简述

我在《实现drop函数》一文最后留了个问题: 抽象的价值是否就在于将问题映射到更简单的解空间? 这只是我的Shower Thought。但可以就其展开谈一些有趣的事。 首先,抽象这个词在中英文语境的含义不一样。其次,抽象的概念本身就很难解释(你看我一不小心就递归了:-p)。本文将从一个编程者的角度阐述一些问题。 辞源 抽象的英文是abstract,看词根就是牵拉的意思。15世纪艺术届大量使用abstract表示分离现实物质的行为。比如说抽象画,它的一大要素就是去除事物的外在特征。可能是同期艺术界千奇百怪的作品被冠名“抽象”,让这个词有了“高深”或“难以理解”的含义。 中文的抽象一词源头已经不可考,但它的含义已经被各种后现代艺术,娱乐作品转义了不知道多少次。工程上所谓的抽象出现不超过200年。

Posted in 无用心得 | Leave a comment

吃饱了撑的之实现drop函数?

本篇的灵感如题来自一个常见的函数drop(),他的用法是这样的: 它在函数式或者动态语言里非常常见。一般实现是这样: 这里借助了tail()。如果用Python或者Go就是xs[1:](尾递归优化不在探讨范围)。

Posted in 无用心得 | Tagged | 107 Comments

Fatgrammer的状态机编程练习

状态机(State Machine),在电气,电子行业应用比较多。对于程序员,尤其是在应对流程复杂的业务逻辑时也非常有用。大多情况下,只要设计出良好的状态图,就可以机械地将其翻译成代码。状态机家族很庞大,有说不完的话题,我不打算涵盖每一点一面。以下主要讲述一些个人的理解和编程实践。 游戏编程有个重要的概念,触发器(是Trigger不是电路中的Flip-flop)。它核心的两个概念,事件(Event)和动作(Action),有时候可选的加上环境(Environment)/ 条件(Condition)。举个例子: 大多格斗游戏,输入“↓→A”,会发出波动拳,像街头霸王的Ken。对触发器来说,“↓→A”就是事件,波动拳就是动作。但在浮空和倒地时不能发出波动拳,这两个就可以算作环境或条件。再之后,波动拳又可以作为触发下一个动作的事件。

Posted in 无用心得 | Tagged | Leave a comment

响应式编程的启示

响应式编程(Reactive Programming),算是一种异步编程范式。简而言之,在传统指令式编程下: 这个例子很平淡,但是在响应式编程下:

Posted in 无用心得 | Tagged | 1 Comment