currying

    1熱度

    2回答

    我正在爲一個遊戲編寫代碼,作爲在熟悉Haskell之後學習Scala的練習。我開始與ADT如下: sealed class Circle(x: Double, y: Double, r: Double) case class PlayerCircle (x: Double, y: Double, r: Double) extends Circle(x, y, r) case class A

    1熱度

    1回答

    假設我們有下面的類A: class A { public: void sum(int x); }; 我們有一個功能f,它得到一個C風格的回調與int類型的一個參數,並稱之爲: typedef void (*Callback)(int); void f(Callback cb) { cb(5); } 是在C++中有任何方法可以在A類型的對象上注入方法

    1熱度

    1回答

    有什麼方法可以確定MATLAB中函數和/或咖喱函數的形式嗎?我找不到關於此事的任何文件。

    0熱度

    1回答

    簡單任務:我需要的是將參數列表應用於curried函數的函數。 比方說,我們的功能就是著名的add一個: fun add a b = a + b; 現在我想是應用列表(比如[1, 5])到add功能。這會看起來像: apply add [1, 5]; 這似乎比我想象的更難。我嘗試: fun apply f ps = foldl (fn (p, f') => f' p) f ps; 但這

    3熱度

    1回答

    鑽營的功能具有可變我可以創建通過2與2&\*相乘的功能,確實20 = (2&\*)10 我想要做的就是創建一個工廠的功能,使這些秩序。 所以,我想要一個monad f s.t. (f y) x == (y * x) 同時(\*& 2) 3作品((\*&) 2) 3沒有,所以想明確: (3 : 'y&*') 2產生一個語法錯誤。 我哪裏錯了?

    0熱度

    2回答

    我有以下迅速函數: func foo(bar: String)(_ baz: String) { NSLog("bar \(bar), baz: \(baz)") } let f = foo("fizz")("buzz") // won't compile, foo returns Void 我想傳遞給dispatch_async,但我不能,因爲我不能既咖喱參數而不用調用該函數

    1熱度

    1回答

    我正在通過從「Scala for the Impatient」一書中學習Scala來學習Scala。有幾個問題可以檢驗柯里化的概念。我盡我所能地回答了他們,但我想在這裏由專家來執行這些操作。 請到corresponds的呼叫,它檢查在 陣列串的元件是否具有在整數數組中給出的長度。 我的代碼: def isCorrespondingLength(arr: Array[String], len: Ar

    0熱度

    1回答

    我正在閱讀async.js庫的源代碼,並在那裏找到了一個名爲'only_once'的函數,然後我嘗試了一些示例來清楚它是如何工作的,但是我我無法弄清楚我的例子有什麼問題,因爲他們根本就不應該這樣做。這裏是我的代碼: function only_once(fn) { var called = false; return function() { if (called)

    1熱度

    1回答

    我開始學習一點Scala,並且基本上我知道函數返回函數和currying但 我見過兩種語法這樣做,我想更好地瞭解 的差異,也許有點落後 理論是怎麼回事的。 在第一種方法(使用=>)我可以通過只指定 參數綁定到變量x咖喱的功能。然而,當我嘗試這樣做 用第二種方法,編譯器會告訴我,我需要指定第二個參數_ 外卡。 我明白我需要做的,但我不知道爲什麼我需要做的事情 這種方式。有人可以告訴我,Scala編譯

    0熱度

    1回答

    我很難通過網絡上的多個來源瞭解currying。是不是有更直觀的柯里化例子? 另外,與傳統編程範例相比,它有什麼優勢?柯里化可能實現非功能性編程嗎?