簡體   English   中英

如何舉起一個功能來處理鏡頭?

[英]How to lift a function to work on lenses?

我目前定義了兩個功能:

avg :: (Fractional e) => [e] -> e
avg e = uncurry (/) $ foldl' (\(a,l) v -> (a+v,l+1)) (0.0,0.0) e

avgOf :: (Fractional a) => Getting (Endo (Endo (a, a))) s a -> s -> a
avgOf g s = uncurry (/) $ foldlOf' g accfun (0.0,0.0) s
  where accfun (a,l) v = (a+v, l+1)

我的印象是,必須有一種簡單的方法來擺脫整個avgOf實現,並用一個簡單的方法取代它,只需“提升” avg即可。

您可以使用partsOf來構建整個布料。

avgOf l xs = xs^..partsOf l.to avg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM