dragondove 最近的时间轴更新
dragondove's repos on GitHub
Lua · 38 人关注
nvim
config for neovim
Shell · 25 人关注
dotfiles
my personal dotfiles
3 人关注
dragove
Python · 1 人关注
chatllm
Scala · 1 人关注
codeDrafts
some drafts for different languages
C · 1 人关注
dwm
Emacs Lisp · 1 人关注
straight.el
🍀 Next-generation, purely functional package manager for the Emacs hacker.
Shell · 0 人关注
bifer
I don't know what is this
Astro · 0 人关注
blog
personal blog site
FreeMarker · 0 人关注
boardroom_backend
boardroom appointment management system backend and web end
0 人关注
doom-one.nvim
doom-emacs' doom-one Lua port for Neovim
JavaScript · 0 人关注
EatKano
小游戏:吃掉小鹿乃 | 春节期间内卷比赛!
0 人关注
friendly-snippets
Set of preconfigured snippets for different languages.
Lua · 0 人关注
guard-collection
collection the tools config for guard
0 人关注
hyprland-wiki
The Hyprland Wiki Pages, automatically synced with the website.
0 人关注
LazyVim
Neovim config for the lazy
TypeScript · 0 人关注
maa-copilot-frontend
MAA Copilot Frontend
0 人关注
maa-copilot-store
a place to backup copilot jsons from maa backend server
0 人关注
MaaAssistantArknights
《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.
Kotlin · 0 人关注
MaaBackendCenter
MAA Backends
TypeScript · 0 人关注
MaaX
MAA GUI with Electron & Vue3
0 人关注
neovim
Vim-fork focused on extensibility and usability
Python · 0 人关注
NeuroKit
NeuroKit2: The Python Toolbox for Neurophysiological Signal Processing
0 人关注
OnJava8
《On Java 8》中文版,又名《Java编程思想》 第5版
0 人关注
OpenNMT-py
Open Source Neural Machine Translation in PyTorch
Python · 0 人关注
pytorch_scatter
PyTorch Extension Library of Optimized Scatter Operations
0 人关注
sqala
0 人关注
sqala-doc
C · 0 人关注
st
config for simple terminal
Python · 0 人关注
storode
cross-referencing code and requirements system
dragondove

dragondove

V2EX 第 450638 号会员,加入于 2019-11-01 21:38:24 +08:00
今日活跃度排名 1849
dragondove 最近回复了
17 小时 6 分钟前
回复了 nnegier 创建的主题 程序员 可以讲下你看到的编程语言的美吗?
@mcfog 和语言设计者的功底也有关,以及语言提供多大的自由度(有时候限制自由是好事),举个例子,scala 没有运算符重载,但是也可以给任意类型添加运算符。因为 scala 的函数名可以为符号,结合扩展方法和中缀表达式就可以给类型添加运算。scala 中 `1 + 2` 就是 `1.+(2)` 而已。这样就不需要额外引入运算符重载的语法了。缺点就是自由度过大,导致一些库作者玩的太花,各种自定义运算符满天飞。所以有时候限制自由度是有好处的
17 小时 23 分钟前
回复了 nnegier 创建的主题 程序员 可以讲下你看到的编程语言的美吗?
@Dropless 创建对象的话,kotlin 和 scala 都可以直接 `val person = Person()` 也足够简洁(数字符的话和 Person person = new() 是一样多的),不过 scala 中内置的想法会不太一样,scala 是 universal apply (实际上调用的是 Person 伴生对象的 apply 方法)更加通用一些,也可以自行改造成工厂方法(用起来和构造器一样,实际是工厂,更加统一)
17 小时 28 分钟前
回复了 nnegier 创建的主题 程序员 可以讲下你看到的编程语言的美吗?
@scp3125 Result 对比 Checked Exception 并没有显著的优势,你的例子换成 java 写可能还更简洁
```java
public static String readFile(String path) throws FileNotFoundException, IOException {
File file = new File(path);
try (var fis = new FileInputStream(file)) {
return new String(fis.readAllBytes());
}
}
```
异常靠 throws 传播,和你的问号作用基本是一样的,函数的返回类型还更简单,模式匹配靠 catch 匹配,能达到相同的效果,代码还更简洁。
17 小时 33 分钟前
回复了 nnegier 创建的主题 程序员 可以讲下你看到的编程语言的美吗?
@dwu8555 你这个例子不太能表现出 LINQ 的优势,对应的 scala 代码如下
```scala
val scores = Array(97, 82, 60, 99)
val r = for score <- scores
if score > 80
yield score

println(r.mkString(" "))

```
python 也可以做到更简洁
```python
scores: list[int] = [97, 92, 81, 60]
r = [score for score in scores if score > 80]
print(" ".join([str(x) for x in r]))
```
@96356 Linux 通过 proton 运行游戏方面可以查询 protondb 查看兼容情况,比如你说的地平线 5 可以看这个页面
https://www.protondb.com/app/1551360
@layxy 仓颉 beta 版本已经开放有一段时间了 https://cangjie-lang.cn/download 可以直接下载,感觉有些特性应该还需要砍一下,优化一下,反正还不是最终版。然后运行时的性能也没白皮书说的那么好,gc 性能很差。然后我不知道怎么才能把运行时静态链接进去,按照文档怎么尝试命令都不行,估计是测试版还有问题。
初学的难主要还是缺乏可视化的手段吧,还有一个是用递归模拟迭代的多参数混乱。可以看下类似 https://dmytrobaida.github.io/recursion-viewer/ 的工具,然后自己写的时候可以打印点日志,打印的方式是递归方法入口先打印 indent (比如说是 2 个空格)* 递归深度(递归深度作为参数传入)然后方法名加各个参数信息。打印内容可能是类似下面这样
```
|fib(5)
| |fib(4)
| | |fib(3)
| | | |fib(2)
| | | |2
| | | |fib(1)
| | | |1
| | |3
| | |fib(2)
| | |2
| |5
| |fib(3)
| | |fib(2)
| | |2
| | |fib(1)
| | |1
| |3
|8
```
这个的源码大概是这样:
```scala
def fib(n: Int, depth: Int = 0): Int =
println(s"""${"| " * depth}|fib($n)""")
if n <= 2 then
println(s"""${"| " * depth}|$n""")
n
else
val r = fib(n - 1, depth + 1) + fib(n - 2, depth + 1)
println(s"""${"| " * depth}|$r""")
r

val res = fib(5)
```

当然,你也可以想办法把这个功能做成装饰器
51 天前
回复了 Renco 创建的主题 Java 请教一下关于 Java 泛型的问题。
@yazinnnn0 根据返回类型实际上是放弃类型安全,不过可以通过其他方式补全(比如楼主用的 Class<T>的方式,但是 Class<T> 存在 T 不能有泛型的限制,都是历史债,建议是自己定义一个 TypeInfo 之类的类型来使用),下面的例子是 java 中根据返回类型推断泛型的例子,java 在这方面不存在你说的问题。

```java
public class Main {
static Object o = new Object();
@SuppressWarnings("unchecked")
static <T> T get() {
return (T) o;
}
public static void main(String[] args) {
String x = get();
}
}
```
@cnt2ex 你应该和 windows 比,linux 有 bwrap 隔离,起码可以做到不让它读取你的硬盘,只是易用性上还不太行。windows 有沙箱,但是大部分人也不会用,易用性也存在问题。linux 相对来说比 win 还好点
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   680 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 21:28 · PVG 05:28 · LAX 13:28 · JFK 16:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.