-1
在很多語言中,有很多方法可以爲RPC或甚至調用SQL函數創建稱爲透明代理(或代理transproxy)的東西。例如在C#中,我們既可以使用元編程(使用IOC),也可以使用DLR。 Haskell有沒有什麼方法可以創建透明代理?假設我們有一些服務和創建代理變量之後,我們必須能夠稱之爲「myFunc的」如下:Haskell中的透明代理
proxy myFunc arg1 arg2
或任何類似的。我必須爲此使用模板Haskell嗎?
如果你正在談論,例如['DynamicProxy'](http://www.castleproject.org/projects/dynamicproxy/),那麼否,Haskell沒有任何可怕的黑客那樣醜陋。您在語言X中學到的想法往往不適用於語言Y,因爲語言Y有不同的做事方式。那麼,你真的想要達到什麼? –
我當然知道語言之間的範式差異,因爲我已經認真地使用了六種語言。我使用__getattr__和__call__魔術方法在Python中使用IoC代理對象來處理Python。我知道在Haskell中沒有類似的方法可以做到這一點,但我的意思是在Haskell中有實現客戶端透明的選擇嗎? (除完整代碼生成外) – Kamyar
某些初始解決方法可以爲服務定義一個類型類型,然後使用運算符翻轉函數的第一個參數,以便生成的調用看起來更漂亮: 0x35> f = fx class MyService其中 myFunc :: MyService - > a - > b - > Int result < - myServiceInstance。> myFunc arg1 arg2' – Kamyar