This media is not supported in your browser
VIEW IN TELEGRAM
展示性地介绍一下这个插件,目前例子还没做完....
duangsuse::Echo
展示性地介绍一下这个插件,目前例子还没做完....
可以看到指针在移动就对了
Screenshot_20190503_233533.png
161.6 KB
Made with ❤️ and VisualGIMP
duangsuse::Echo
因为我也不是机器学习和计算机图形学、信息学、密码学领域的人 #machl #ann #cg .... 自然语言处理我也是正在想办法准备学 所以我只好看看关键字匹配... 发现的确就是分词算法啊 https://github.com/CNBlackListR/CNBlackListSoamChecker/blob/aa281efd716a8c11876d755868125cd117aa38cb/CommandObject/SpamMessageChecker.cs#L37 简而言之,spam 打分算法就是接受…
btw. 其实这个蜜汁算法就是不查重(查到一次就滚)版本的 strstr。
... NS, 我开始在 ObjectiveC 上看到的,看到的只是 NSNumber,我自以为是的解释是:Natural Signed Number... 🙈 23333
Forwarded from Rachel 碎碎念 (IFTTT)
小王喜欢用 null 表示空,词源是拉丁语 nūllus (not any)。
小张觉得直接用拉丁语 nil 更好,更短也表达了 nothing 的意思。
小周觉得用英语 None 不更便于理解?
小李觉得他们都有道理,于是同时引入了 nil null None 和 Nothing。
老李觉得,应该再引入一个 NSNull。#晦涩难懂的码农段子— Delton Ding (@DeltonDing) May 1, 2019
小张觉得直接用拉丁语 nil 更好,更短也表达了 nothing 的意思。
小周觉得用英语 None 不更便于理解?
小李觉得他们都有道理,于是同时引入了 nil null None 和 Nothing。
老李觉得,应该再引入一个 NSNull。#晦涩难懂的码农段子— Delton Ding (@DeltonDing) May 1, 2019
Twitter
#晦涩难懂的码农段子 hashtag on Twitter
See Tweets about #晦涩难懂的码农段子 on Twitter. See what people are saying and join the conversation.
Rachel 碎碎念
小王喜欢用 null 表示空,词源是拉丁语 nūllus (not any)。 小张觉得直接用拉丁语 nil 更好,更短也表达了 nothing 的意思。 小周觉得用英语 None 不更便于理解? 小李觉得他们都有道理,于是同时引入了 nil null None 和 Nothing。 老李觉得,应该再引入一个 NSNull。#晦涩难懂的码农段子— Delton Ding (@DeltonDing) May 1, 2019
不过话说回来,我又抄了个 Maybe: #Python #FP #OOP #pl
这样就可以安全使用了?
这样就可以安全使用了?
str(Util.Nothing) #=> 'object?(None)'
Nothing #=> <VisualGimp.Util.Maybe at 0x7fcaf43c7e48>
str(Just(2)) #=>'int?(2)'
a = Util.Just(2)
a.get() #=>2
a.flat_map(print)
# 2GitHub
duangsuse/VisualGimp
🐺 Alogrithm visualization with Gimp Python script. Contribute to duangsuse/VisualGimp development by creating an account on GitHub.
#CS #PL #FP #Tuby #PHP 说到现在广为资磁🐸的 Lambda(排除 Scheme 等真正依赖真正的 Lambda 的之外),
我们就来看看 🌶🐔 #Python 吧。
如果你给 Python2 一个这样的 Lambda 表达式:
(global scope)
SyntaxError: can't assign to lambda
这是怎么实现的,我想不是重点,但是 Ruby 里的确可以这么做,反观 Java 8 引入的 Lambda(Coin 项目的?哦好像就叫 Lambda 项目...),也不能『assign』
它要引入的变量,全都得是 "effective final",要不然就是『无效引用』了?为什么?其实这和程序设计语言语义背后的存储,关于值和引用之类的东西有关...
从侧面反映了 Ruby 不仅比 Python 更可读(拟态方法 vs. __init__ __ge__ 这种让人丈二和尚摸不着头脑的奇葩名字,还有反直觉的类定义项引用名字里 __ 前缀的含义),而且更函数式(跑
欸这么做啊就有一个好,我们知道 Python 是实现了 Lexical scoping(嵌套序作用域) 的,要不然也不能这样定义这个函数:
Python 认为 Lambda 是什么呢? 它认为 Lambda 是一种 function...
欸 Python 实在是混乱邪恶... 像是 Ruby 和 Lua 的杂交体...
为什么,你们猜? 🌚
还是说...
我们就来看看 🌶🐔 #Python 吧。
如果你给 Python2 一个这样的 Lambda 表达式:
(global scope)
a = 1# 1
l = lambda: a
print(l())
compile('l=lambda: a=2', '<lambda-assign-test>', 'single')
#!> File "<lambda-assign-test>", line 1SyntaxError: can't assign to lambda
这是怎么实现的,我想不是重点,但是 Ruby 里的确可以这么做,反观 Java 8 引入的 Lambda(Coin 项目的?哦好像就叫 Lambda 项目...),也不能『assign』
它要引入的变量,全都得是 "effective final",要不然就是『无效引用』了?为什么?其实这和程序设计语言语义背后的存储,关于值和引用之类的东西有关...
a = 1正好符合我们对『a = 2 语义』的预期,Ruby 就是这样,代码块就是代码上下文中的一部分,不是独立的语法糖。
l = ->() { a = 2 }
l.call() #=> 2
a #=> 2
从侧面反映了 Ruby 不仅比 Python 更可读(拟态方法 vs. __init__ __ge__ 这种让人丈二和尚摸不着头脑的奇葩名字,还有反直觉的类定义项引用名字里 __ 前缀的含义),而且更函数式(跑
欸这么做啊就有一个好,我们知道 Python 是实现了 Lexical scoping(嵌套序作用域) 的,要不然也不能这样定义这个函数:
def compose2(fn): return lambda x: lambda y: fn(x, y)并且这样使用
compose2(print)(1)(2)如果 Python 是 dynamic scoping(时序作用域)维护着符号表栈的话,
def get_a(): return a
a=1
get_a() #=> 1
def foo():
a=2; return get_a()
foo() #=> 1
foo() 的 a 定义就要覆盖掉 global scope 里的 a 定义了(反正这里就是一层函数调用一个作用域,还有一个 global scope)Python 认为 Lambda 是什么呢? 它认为 Lambda 是一种 function...
欸 Python 实在是混乱邪恶... 像是 Ruby 和 Lua 的杂交体...
为什么,你们猜? 🌚
还是说...
METO 的涂鸦板
PHP 7.4 开始支持箭头函数了
一看我好像不会 SQL 不懂 DBMS 也不能写关系代数式... 就觉得很虚
而且还没有写过需要模板功能支持的东西....
总是怕被人喷啊
而且还没有写过需要模板功能支持的东西....
总是怕被人喷啊
duangsuse::Echo
一看我好像不会 SQL 不懂 DBMS 也不能写关系代数式... 就觉得很虚 而且还没有写过需要模板功能支持的东西.... 总是怕被人喷啊
This media is not supported in your browser
VIEW IN TELEGRAM
今天看来做不了什么了... 时间还是太少
我只能写 RangeMap 库吧... 要是可以再弄个简单的 TextCombinator 和 BinaryReader 就好了
我只能写 RangeMap 库吧... 要是可以再弄个简单的 TextCombinator 和 BinaryReader 就好了
duangsuse::Echo
#freedom 总算能用了.... 蓐羊毛翻墙日益艰难?🌚🐕
从一周前到现在,不知道又做了些什么...
Forwarded from AlPlank (Al Pt)
Forwarded from AlPlank (Al Pt)
说实话java的 notnull String+null会报出空指针异常真的是缺德啊(所以养成了String==null?"":String的不良习惯
Forwarded from AlPlank (神楽坂 立音)
因为你删掉 null 就是未初始化…
AlPlank
魔幻的问题。 我先声明一个全局异常变量并赋值null idea告诉我这里一定是非null(也就是在中间被赋值过) 然后我删掉了赋值…… idea告诉我可能这里没赋值?? #public
这里给同学一个我觉得有可能的情况: #PL #CS #Java
首先,我得给大家科普一下一些关于控制流的,我之前不知道而现在又知道了的名词:
+ 『短路』操作符(运算符)
这里说的『短路』是指,其连接表达式可能不会被全部求值
比如,C 里的
a || b 在 a 为 true 的时候值为 a,b 不需要被求值,否则值是 b 的值
Scheme 里这么定义,当然你也可以列真值表,不过这里不用列:
(define logical-or
(lambda (a b)
(cond
(a #t)
(else b))))
这就称为『getB(), getC()』被“短路”了(参考电子电路基础的短路)
这种操作符被称为短路操作符
+ 『非短路』操作符
这里就是
XOR 的语义,其实在机器学习上也是有入门级别的交流的,XOR 要求其两个参数”不相同“
(define compose
(lambda (f g)
(lambda (args)
(call-with-values (apply g (list args)) f))))
(define (~and a b) (and a b))
(define nand (compose not ~and))
(define (xor a b) (and (or a b) (nand a b)))
欸好像有点写错了... 自己照着理解吧...
(compose (f g) 就是 (lambda x (f (g x))))
好了那前置知识基本可以了
我们来看看 IDEA 为啥可以这么说:
... 我又想废话异常是什么了... 算了不废话了
首先你们看上面的代码:
然后是一个我没见过的语法,怎么又是我没见过的
居然还有这种语法... 我一直以为 Java 不让 goto 的... 好像是不让在循环外 goto ... 打住
labeledStatement ANTLR Java8
当然,Java 的语言标准里也有提到:
Unlike C and C++, the Java programming language has no goto statement; identifier statement labels are used with break or continue statements (§14.15, §14.16) appearing anywhere within the labeled statement.
Java 语言标准表达方式冗长严谨复杂,不适合作为第一次理解的目标来选择...
Java 这么做也是有自己的理由,至少,到处 goto 不利于结构化编程。
然后进入正题...
在 Java 的视角,所谓全局变量大概就是静态类变量了吧?(Kotlin 和 Scala 里都是
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.11.8
For instance, the iload instruction (§iload) loads the contents of a local variable, which must be an int, onto the operand stack.
local variable 在使用之前得先赋值(这样才有一个能认的 Type),有时候 Java 允许你这样:
找了这篇文章有点参考价值,虽然非常有限
首先,我得给大家科普一下一些关于控制流的,我之前不知道而现在又知道了的名词:
+ 『短路』操作符(运算符)
这里说的『短路』是指,其连接表达式可能不会被全部求值
比如,C 里的
|| (Logical OR) 和 && (Logical AND)a || b 在 a 为 true 的时候值为 a,b 不需要被求值,否则值是 b 的值
Scheme 里这么定义,当然你也可以列真值表,不过这里不用列:
(define logical-or
(lambda (a b)
(cond
(a #t)
(else b))))
getA() || getB() || getC()实际上语义也可能可以这么说:
subroutine {
if (a = getA()) { return a; }
if (b = getB()) { return b; }
if (c = getC()) { return c; }
}
如果 getA() 为『真』,实际上可以说后面的表达式不会被求值这就称为『getB(), getC()』被“短路”了(参考电子电路基础的短路)
这种操作符被称为短路操作符
a && b ,实际上经常可以认为是subroutine {
if (a) if (b) { return true; }
return false;
}
实际上呢?上面的程序也等价于下面这个,因为 if(b) 的 else branch (语法上不存在,这里是方便理解)实际上直接 fall through 到了 return false:if (...) .. else .. 嵌套当然还是 Java 1-11 里的就近原则subroutine {
if (a) { if (b) return true; else return false; }
else return false;
}
#Haskell 里,因为有惰性求值,所以你可以定义自己的短路操作符,C 里面就不能定义自己的『短路函数』了(因为 C 是 pass-by-value 的,先求值函数参数再传递求值好的结果+ 『非短路』操作符
这里就是
^ 这种啦,就是求值不会因为某个子表达式的结果而导致子表达式不会完全求值的XOR 的语义,其实在机器学习上也是有入门级别的交流的,XOR 要求其两个参数”不相同“
(define xor (lambda (a b)或者也可以这么 define (Chez Scheme 里,我现在觉得还不如直接用 Haskell 算...)
(cond
(a (not b))
(b (not a))
(else #f))))
(define compose
(lambda (f g)
(lambda (args)
(call-with-values (apply g (list args)) f))))
(define (~and a b) (and a b))
(define nand (compose not ~and))
(define (xor a b) (and (or a b) (nand a b)))
欸好像有点写错了... 自己照着理解吧...
(compose (f g) 就是 (lambda x (f (g x))))
好了那前置知识基本可以了
我们来看看 IDEA 为啥可以这么说:
... 我又想废话异常是什么了... 算了不废话了
首先你们看上面的代码:
mainService:while (true) {
tryUpdate:{
Exception exception = null;
for (int i = 0; i < 2; i++) {/*...*/}
AIPtLog.errors("trying getUpdates:\n" + exception);
}
}
一个事件 while 循环,不过还打上了没有用的 tag 叫 mainService然后是一个我没见过的语法,怎么又是我没见过的
居然还有这种语法... 我一直以为 Java 不让 goto 的... 好像是不让在循环外 goto ... 打住
labeledStatement ANTLR Java8
当然,Java 的语言标准里也有提到:
Unlike C and C++, the Java programming language has no goto statement; identifier statement labels are used with break or continue statements (§14.15, §14.16) appearing anywhere within the labeled statement.
Java 语言标准表达方式冗长严谨复杂,不适合作为第一次理解的目标来选择...
Java 这么做也是有自己的理由,至少,到处 goto 不利于结构化编程。
然后进入正题...
> 我先声明一个全局异常变量并赋值null
好像不是全局的?(考虑到 JVM 的设计,平台语言的托管全局变量都只能限制到 JVM 视角的『类静态』或者说『方法区』变量吧...)在 Java 的视角,所谓全局变量大概就是静态类变量了吧?(Kotlin 和 Scala 里都是
object 里的成员)> 然后我删掉了赋值…… idea告诉我可能这里没赋值??所有
Object (对对象的引用)的默认值的确是空,但是在 Java 和 JVM 的角度,却不是总是遵循这个规则,就 exception 这个方法(局部表)里的变量来说,虚拟机得为它分配一个空间,但是这个空间虚拟机不会自动把它初始化了,必须得手动赋值,在这里 Java compiler 的工作等于是帮你检查程序会不会被虚拟机接受https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.11.8
For instance, the iload instruction (§iload) loads the contents of a local variable, which must be an int, onto the operand stack.
local variable 在使用之前得先赋值(这样才有一个能认的 Type),有时候 Java 允许你这样:
void foo() {
int a; a = 0;
System.out.println("a is " + a);
}
只是因为 Javac 通过控制流分析知道执行 println 的时候 a 肯定不是 uninitialized 而已找了这篇文章有点参考价值,虽然非常有限