higher-order-functions

    8熱度

    1回答

    假設我想用一個函數來運行一個摺疊函數f(x,y)。這可以用 List.fold (fun x y -> f (x, y)) x xs 做我有種感覺,就必須有一個高階函數抽象出該模式,採用期望一個元組,並把它變成一個期望兩個獨立的參數的函數的函數。 F#標準庫中是否有這樣的函數?如果不是這樣,寫起來容易,但是它應該怎麼稱呼? untuple?

    2熱度

    2回答

    我在這裏有一個更高級的sorta函數。 雖然這按預期工作: var square = (a) => a * a; var callAndLog = (func) => { return function() { var res = func.apply(undefined, arguments); console.log("Result is: " + res);

    6熱度

    2回答

    我要讓void enqueue(Callback<T> callback);方法調用的代碼塊更有表現力,這是我有一個平時 request.enqueue(object : Callback<MyModel> { override fun onFailure(call: Call<MyModel>?, t: Throwable?) { // } o

    2熱度

    2回答

    編寫函數make_monitored將輸入函數f作爲輸入,該函數本身需要一個輸入。 make_monitored返回的結果是第三個函數,比如說mf,通過維護一個內部計數器來跟蹤它被調用的次數。 如果mf的輸入是特殊字符串「how-many-calls?」,那麼mf返回 計數器的值。 如果輸入是特殊字符串「reset-count」,則mf將計數器 重置爲零。對於任何其他輸入,mf返回在該輸入上調用f

    2熱度

    1回答

    以下代碼使用factorial函數之外的cache對象。函數本身很大,對尋找階乘和緩存有太多顧慮。 我怎麼能這樣的代碼轉換爲高階函數併產生相同的結果時,我打電話 console.log(factorial(5)); console.log(factorial(7)); cache = { } function factorial(n) { if (n

    2熱度

    1回答

    看一看這個片段[*]: val la = List(Array(2, 3, 5), Array(7, 11, 13)) la.flatten 回報 res1: List[Int] = List(2, 3, 5, 7, 11, 13) 現在,我一直在玩Spark和我迷迷糊糊遇到問題。該片段: val myRdd: RDD[String] = sc.textFile("myFilePath"

    1熱度

    2回答

    我試圖使用Concat的減少數組的數組,我想,我可以使用Array.prototype.concat功能是這樣的: arr = [[1],[2],[3]] arr.reduce((a, b) => Array.prototype.concat(a, b), []) 其中一期工程罰款,並給我陣列[1, 2, 3]。後來我想我可能會更聰明,像這樣做: arr = [[1],[2],[3]] a

    1熱度

    1回答

    很久以前的工作,我比這個代碼獲悉: def doSome(ref: ActorRef, msg: AnyRef): Unit = { ... some routine ... ref ! msg } def receive = { case x: Foo => doSome(sender(), x) } 必須 ... def receive = {

    0熱度

    1回答

    我正在通過在線學習平臺來做這個問題,並且有我必須通過的測試用例。 主題是高階函數。 這裏是這樣的問題: 寫功能make_decimal_to_n_ary_converter接受的數n,其中1 <Ñ< 17,並返回一個數轉換器,一個給定的十進制數轉換爲基數n的。 下面是我的代碼(我應該使用一個內部函數,即轉換器(X)) def make_decimal_to_n_ary_converter(n):

    2熱度

    4回答

    首先抱歉,如果我沒有發佈在正確的地方,或者如果已經有重複,但我不知道該怎麼稱呼它或如何搜索它。 可有人請向我解釋什麼下面的代碼的意思是: function noisy(f) { return function(arg) { console.log("calling with", arg); var val = f(arg); console.log("cal