是不是 JavaScript 函式式程式設計的 Pointfree Style 有時會喪失程式可讀性?

時間 2021-05-31 00:15:01

1樓:胖虎

如果不考慮 this 我認為其實可讀性更高的const aSet = new Set()someArrary.forEach(aSet.add);

這本是乙個很適合的例子,但是無法正常執行

因為 add 的 this 指向不正確了

2樓:[已重置]

嘗試用HS(純函式式語言)做了下,與題主的邏輯相同。

data

Pagination

=Pagination

pageCount

::Pagination

->IntpageCount

(Pagination

total

itemsPerPage_)

=uncurry(+

).fmap

zToz

.divMod

total

$itemsPerPage

where

zToz0=

0zToz_=

1-- 完全pointfree

pageCount2=(

+)-- 抱歉HS做到很困難,也是需要借助類似converge函式。

pageCount是盡可能的pointfree ,並沒有喪失可讀性。

pageCount2是想完全pointfree 發現太困難了。

如果我寫出來的時候很困難,那麼對於我來說讀的時候也會困難,可讀性會下降。另外,函式式的pointfree style只是乙個紅利,個人覺得並不是很重要的東西。

3樓:羊牮

明明不是Pointfree 有問題,單純從呼叫結果來看,還是Pointfree 更簡潔美觀。

之所以難以理解,是因為背後呼叫的api長得太醜了。這個要講天時地利人和。

javascript的箭頭函式this問題?

吳浩亮 箭頭函式 this 是此詞法作用域,然後你看下它所在的作用域,取決於 fn 所以問題就轉移到 fn 中的 this 指向誰。 箭頭函式的this到底指向啥?簡單的判別方法是,把箭頭函式整個替換為this,看看這個this是啥 我知道這裡的setTimeout要求第乙個形參為可呼叫的東西,但t...

JavaScript語言如何實現等待函式值為真的操作?

navegador 如果你不介意真實阻塞,那使用Atomic.wait,這個喚醒比較麻煩,只能從另乙個worker 喚醒。這個是真實掛起阻塞的 但是不是while那種佔CPU的阻塞 suooq 我怎麼理解你這個問題?我分析下 函式值指的是返回值 獲取函式返回值只有呼叫它 等待值為真,意思是無限制呼叫...

JavaScript 中,定義函式時用 var foo function 和 function foo 有什麼區別?

說乙個區別 varfoo function 是表示式 函式表示式 function foo 是語句 函式宣告。function 開頭會被當做函式宣告,不能直接呼叫 function foo Uncaught SyntaxError Unexpected token 函式表示式可以 varfoo fu...