好的编程语言设计是用简洁清晰的原语组合复杂功能
首先,函数命名要user friendly,比如最常用的控制台输入输出,input
scanf
gets
read
readln
readline
print
println
writeline
… 我专门询问了chatgpt,让它给出流行度百分比最高的组合(ai干这个最在行):input
print
,次常用的读写文本文件:read
write
,如此四个函数名就搞定了。
然后,功能相近的可以合在一个函数,比如,read有五种格式:
string read(number fp)
null read(number fp, function cb)
string read(string name)
string read(string name, boolean iscmd)
null read(string name, function cb)
null read(string name, boolean iscmd, function cb)
可以用文件指针fp
(fopen
/popen
)操作,也可以直接文件名/命令行(以iscmd
区分,结束自动fclose
/pclose
)如果有cb
,则为按行读,每一行作为参数调用cb
,如果无,则读取整个文件作为返回值。
那么就可以很灵活地不同组合,比如print(read("foo.txt"))
,read("foo.txt", print)
。
再比如正则表达式匹配array match(string str, string pat)
,可以利用展开语法和format
函数一起实现替换功能:
print(format("${0}\n${1}\n${2}\n${3}",...match("Unknown-14886@noemail.invalid","^([\\w\\.-]+)\\@([\\w-]+)\\.([a-zA-Z\\w]+)$")));