#你們覺得什麼語言被高估了
1 messages · Page 1 of 1 (latest)
文言文
TypeScript
雀食
在應用方面 尤其是數據科學之類的
就很少人能跟它打
Python的物件導向我不知道 不過基礎語法確實比大多數其他語言簡潔ㄅ
lambda 超不簡潔
因為作者不喜歡 functional programming
好ㄅ 我碰Python還很淺
Python 寫 lambda 要用 lambda x: ...
對比 Haskell 的 \x -> ...
而且 reduce filter 丟在 functools 裡面w
雖然可以解釋成說 寫 Python 可以不必要用到他們
但就是少了一個發展的可能
JS data type不是很渾沌嗎
JS 更糟 我寧願用 Python
沒碰過 但我覺得應該會比 JS 好
JS 在 functional 的體驗我覺得更糟
在 Python 我如果用 f(obj.method),f 裡面能夠呼叫 obj.method
但在 JS 就可能會因為 this 跑掉所以不能動之類的


我最討厭Python但問題是一堆腳本都只能Python寫
程式碼
台灣的程式資源比起中國真的少很多 很容易不小心就用了中國用法😵💫
雖然我還是會盡量避免就是了
你說像土豆之類的嗎
可讀性顯然沒有吧?
對吧? @keen summit
可讀性0
確實
那種花括號語言、end 語言
讀二十幾份沒有縮排的 code 真的很痛苦 O<<
還行 只要不要寫的太ninja就行
也是你:
而且別忘了python之禪
優美優於醜陋,
明瞭優於隱晦;
簡單優於複雜,
複雜優於繁雜,
扁平優於嵌套,
稀疏優於稠密,
可讀性很重要!
特例亦不可違背原則,
即使實用比純粹更優。
錯誤絕不能悄悄忽略,
除非它明確需要如此。
面對不確定性,
拒絕妄加猜測。
任何問題應有一種,
且最好只有一種,
顯而易見的解決方法。
儘管這方法一開始並非如此直觀,
除非你是荷蘭人。
做優於不做,
然而不假思索還不如不做。
很難解釋的,必然是壞方法。
很好解釋的,可能是好方法。
命名空間是個絕妙的主意,
我們應好好利用它。
./run ```py
import this
Here is your py(3.10.0) output @keen summit
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
你都 using namespace std 嗎
之前為了方便會直接用 現在改掉了

但說真的我也沒用到std以外的東西
你自己寫的就是std外
看看std::move,多麼普通的名字,很容易撞爛吧
好吧 是這樣沒錯啦
比如 Haskell 的 \x -> x+1
\x -> x+1
lambda x: x+1
\m n f x -> m f (n f x)
lambda m: lambda n: lambda f: lambda x: m(f)(n(f)(x))
py的lambda超令人崩潰
他就是不想讓你玩 lambda 的意思
他沒想過sort之類的就會用到了嗎
舉例一下
sort(l, lambda a, b: a < b)?
Python 沒有這種用法 ODO
簡單來講 就是傳入自訂function會用到
有
Python 傳入的叫做 key function,不是讓你比較的
dict(sorted(dict.items(), key=lambda x: x[1]))
那個跟上面的例子不同
這個例子應該不需要 key,因為 tuple 本來就是從第一項開始比較
那我改一下
>>> def dec(f):
... def wra(*arg):
... print('a')
... return f(*arg)
... return wra
...
>>> @dec
... def foo(): pass
...
>>> foo()
a
>>> @lambda f: lambda *arg: [print('a'), f(*arg)][1]
... def foo(): pass
...
>>> foo()
a
```當然還有這種邪教寫法
from operator import itemgetter
sorted(dict.items(), key=itemgetter(1))
這還蠻 functional 的(