haocheng 積分 0

差點忘了這個產品...好像沒看到什麼人在用?

IngramChen 積分 0 編輯於

之前本來的 Angular2 和 AngularDart 就是分開寫的, 後來引進 typescript 策略後才合併 dart 和 js.

這是 DRY, code reuse.

現在 google 裡用 dart 的人變多了, 受不了用 js 思考的 api. 決定加個專屬的團隊開發純 dart 的 angular dart.

這叫 wrong abstration is worse than duplication.

不是 DRY 就是對的, 小至一個 method call, 大至一個 web framework, 都一樣.

caterpillar 積分 5 編輯於

就原討論來看,跟 Functional programming 比較沒有關係,感覺只是想設計 Method chain 的問題,也就是將 if 判斷從程式碼中去除,或說是隱藏至 API 中。

如果真要跟 Functional programming 有關係,那麼就得考量像 filterElse、mapElse、reduceElse 之類的 API,因為每個人在迴圈中做的事不同,而且 xxxElse 可以指定的兩個任務必須是相同性質。

例如 filterElse 的話,兩個任務都要是 filter,而不能像是去做得到單一值的任務,或者是去做了 map 的動作,也就是像(也許還得加上 p1、p2、p3 這類判斷條件):

source.filterElse(p1, a, b)  // a 、b都是filter,只是filter條件不同
   .mapElse(p2, c, d)   // c、d都是map,只是map方式不同
   .reduceElse(p3, e, f); //  e、f都是 reduce,只是reduce方式不同

原討論舉 foreachElse 容易讓人誤會,因為 Java 8 中 foreach 的本質就是 imperative 的。

至於 while 或 for 要不要搭 else,那太容易造成誤會,Python 中雖然有,一直以來也不建議使用,有人說那是因為 else 只會在迴圈中沒有 break 時執行,不過,改成 else 會在迴圈中有 break 時執行,或者是 else 只有在迴圈沒有執行時執行,我想都會有人有話說。

IngramChen 積分 0

升了,但 run configuration 怪怪的

j0n 積分 0

贊同,spring或許可以在這件事真的發生的時候正式稱霸也說不定。

cfchou 積分 0

是指在 iteration 中 break 嗎?

我也想知道 fp 的 idiom

好像 for..loop 本身就是很 imperative, 可是 fp 偏愛 declarative

或許簡單的情況下可以:

collection.takeWhile(predicate).foreach(foo)

複雜的 看過一種做法:

collection.toStream 後每個 iteration returns Either<Success, Fail> 然後 lazily evaluate, stop when getting Fail

IngramChen 積分 0

好奇在 functional 界是怎麼處理這種問題?

這種 iteration 中要做不同的 branch task (side effect) 有漂亮的解法嗎?

IngramChen 積分 0 編輯於

for ... else 很難懂吧, else 的條件是什麼? 有沒有 break ?

for (...) {

} else if break {

}

這樣也許好一點

cfchou 積分 1

看起來作者是想要 for ... else { if no iteration }

不過看到這語法可能有人會認為是 for ... else { if any break }

而這在 python 是 for ... else { if none break }

Effective Python1 Item 12: Avoid else Blocks After for and while Loops

也許 refactor 比較增加這種語法好

qrtt1 積分 0
長知識了!
推 timwu: 好久沒在ptt回文啦.. 已star , parsimonious 是 PEG , 不能  07/08 05:51
→ timwu: 再叫它 CFG 了, http://go.shr.lc/29DVncS , PEG很輝煌的一  07/08 05:53
→ timwu: 役就是唐鳳用parsec幹完perl6, then 真希望 prompt-toolkit  07/08 06:01
→ timwu: 可以 port 到 GO 啊                                       07/08 06:01
推
koji 積分 0

如果表態不要然後丟出來還好,但不知道會這樣沒進展多久...

popcorny 積分 1

說實話這個題目我不太知道要怎麼寫 XD,ingram要不要來貢獻一個章節.. (跪求..)

IngramChen 積分 1

大概說一下有 visibilty 的問題, 然後最簡單的解法就是 immutable. 然後就叫他們自己啃書了

koji 積分 2

來,大家把 concurrency in practice 翻到第x頁...

popcorny 積分 3

可以只貼Link1 嗎? XD 說真的這個挺硬了,算是JVM的實作要求。

IngramChen 積分 4

JEE 在我們這群人的圈子裡 (startup, freelancer, hacker... blah) 大概不太在意吧。我們這群比較愛在網路上發言,但企業裡的反而是沈默的一群開發者,他們多半按照標準行事。

有標準就是穩定、有認證的證書、補充人員成本低… 等等企業很在意的重點。JEE 如果垮了對他們很傷,今天看到已經有人在 change.org1 上連署 oracle 不可放棄 JEE,唉唉。

我個人的話一直是 spring 派,曾經有一段時間我還認定 JEE 早就死掉了,但沒想到看了一些調查,像是 JSF 這樣的東西居然有一大半的人還在用,我看了差點沒暈倒… "標準" 的威力太驚人了,只要是標準就有企業會投資在這技術上,不論這技術設計的優劣。

Oracle 若放棄了 JEE,失去了標準的保障,會發生什麼事呢?新專案新計畫不會有人再選 JEE 了,但 JEE 不會瞬間消失,反而會有新的組織出來帶頭 JEE 的發展 (fork) ,然後承接原本 JEE 該做的事。

也許這是個商機也說不定,因為投注在 JEE 的企業很多,他們很需要維護和升級,試想如果 spring 乘機出了個 JEE 無痛轉換 spring 的套件,然後還提供轉移相關的證書和課程,有多少企業會買單?

IngramChen 積分 1

加一章 java memory model... 沒有這個怎麼寫 thread 的程式…