Ci stavo pensando da un po 'di tempo. La funzione di memoizzazione è solo per le primitive?
Al momento ho questo codice:
Public Shared Function Mize(Of TArg1 As Structure, TResult)(ByVal input_f As System.Func(Of TArg1, TResult)) As System.Func(Of TArg1, TResult)
Dim map = New System.Collections.Generic.Dictionary(Of TArg1, TResult)
Return Function(arg1 As TArg1)
If map.ContainsKey(arg1) Then Return map.Item(arg1)
Dim result = input_f(arg1)
map.Add(arg1, result)
Return result
End Function
End Function
E mi chiedo se dovrei aggiornare TArg1 in modo tale da poter accettare qualsiasi classe arbitraria?