duangsuse::Echo
722 subscribers
4.29K photos
130 videos
583 files
6.52K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
duangsuse::Echo
现在好看的自由软件是越来越多了(
不仅好看,使用起来也有一些能达到非商业甚至商业出品级别
更有甚者,对数学的愚蠢做法执迷不悟的人,设计了像Haskell和Coq那样的语言。在Haskell里面,你可以在代码里定义新的操作符,指定它的“结合律”(associativity)和“优先级”(precedence)。这样的语法设计,要求parser必须能够在parse过程中途读入并且加入新的parse规则。Coq试图更加“强大”一些,它让你可以定义“mixfix操作符”,也就是说你的操作符可以连接超过两个表达式。这样你就可以定义像if...then...else...这样的“操作符”。

🌑 天辣,居然还有这种操作... 简直丧心病狂...
dse@susepc:~/Projects/squirrel/build$ sq
Squirrel 3.1 stable Copyright (C) 2003-2017 Alberto Demichelis (64 bits)

sq>1

sq>print(1)
1
sq>

清奇的 REPL (?
http://www.yinwang.org/blog-cn/2015/10/18/turing

想想最近 Hawking 去世的消息,物理好像他和爱因斯坦好算是最厉害的吧??? 或者只是误会?
计算机科学上我却一直感觉好像一直没有特别厉害的人物.... 好像就是一堆dalao 没区别一样
#geekapk 看你们也不做了,我这几天也划划水 🌚
我自己也不是没有其他事情可做非要做 GeekApk 的
This media is not supported in your browser
VIEW IN TELEGRAM
顺便安了个 KDE,,
等 Lime 做完 Ruby、Java、JavaScript 的展开器、写完一个能用的std和oop插件后我就回去做 GeekApk
Forwarded from Deleted Account
今天又有人问我怎么不再写技术文章了,俺说到:... 技术文章容易沦为不负责任(因为时间推移,作者见解可能改变,文章内容本身可能过时,需要更新,比较费力);
所以有空的时候,博客还是要再清理一番,以后有机会的话,可以转为「感慨博客」,发发各种感慨,多好(drakeet 从初中到现在一直在 QQ 空间发布各种黑历史感慨文章,至今有几百篇了)。不过因为博客网站是完全公开的,还没考虑清楚(其实问题也不大,完全公开也好),导致此计划一直没有施行。
duangsuse::Echo
等 Lime 做完 Ruby、Java、JavaScript 的展开器、写完一个能用的std和oop插件后我就回去做 GeekApk
昨天考虑到方便访问展开规则的缘故把 Hash 加入原生类型里了
现在有 Macro Hash List String Symbol Bool Number Nil 八种原生类型 (预备以后的 Native 解释器实现)
→ # ⇒ : :' ' " ~ ⇢ ↻ ↷ ? $ :: ::= ⤓ 🖬 几个内部实现的 以及 .
(然后Hash既然有了就干脆也实现 OOP 吧, libstd 也使用 oop\
简直不忍...
This media is not supported in your browser
VIEW IN TELEGRAM
#project Lime 今天下午又有一些变更,总的来说:
1. OOP 支持, Ruby 由于足够灵活方便所以(Ruby 版本)没有内建,而是包 std/oop 使用插件(当然也有 Lime)实现的
具体工作方法可以等 wiki

例子:
(10.times (do (th)
(puts "Hello, world! #:#{th}")))

(-> File std::File)
(-> a_file (File::open 'a.txt :r))
(puts (a_file.read))

FooHash::FooKey::NestingClass::new.call_a_func

(class A
(super std::Object)
(def self.classmethod (puts 'a))
(def a_method 1))

(class B
(super A)
(include FooHash::FooMod)
(initialize)
(def a self::a)
(def a= (value)
(self::a= value)))

(r :(B::new).a) ;=> nil
(-> b_obj (B::new))
(b_obj.a= 1)
(b_obj.a) ;=> 1
(b_obj.a_method) ;=> 1
(b_obj.class) ;=> "B"
(b_obj.class.superclass) ;=> "A"

P.S: 最原始的其实是这样
(-> B (=>
name: "B"
class: "std::Class"
superclass: "A"
;......
(-> A (=>
name: "A"
class: "std::Class"
superclass: "std::Object"
#a_method: (# 1)
classmethod: (# (puts 'a))))


2. 详细了一下项目方案...
包括 CI, Spec, Wiki, 文档和主页之类

3. 内部的几个 Lime dispatch 绑定改名,详细文件和 FCL 结构,一点开发计划...

4. 语法修改支持更多 Symbol 操作, 详细化了 Lime 库\插件支持
duangsuse::Echo
#project Lime 今天下午又有一些变更,总的来说: 1. OOP 支持, Ruby 由于足够灵活方便所以(Ruby 版本)没有内建,而是包 std/oop 使用插件(当然也有 Lime)实现的 具体工作方法可以等 wiki 例子: (10.times (do (th) (puts "Hello, world! #:#{th}"))) (-> File std::File) (-> a_file (File::open 'a.txt :r)) (puts (a_file.read)) F…
展开器使用了更加灵活的方式:
现在只有 (. builtin_expanderid *args) 是亲定的了,其他前置展开器都变成普通的 Macro, 类似这样:
module Lime
module Builtins
symbol '^#', 'Create a macro object'
def macro_ctor(args_or_body, body = nil)
body.nil? ? Lime::Macro.new([], args_or_body) : Lime::Macro.new(args_or_body, body)
end
make_symtbl
end
end