Built-in memoization
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- csharp
- Área
- developer-experience
Línea de trabajo
Comienza con la prueba de concepto recursiva de Memoize y las firmas de API propuestas en el issue; localiza dónde HonkSharp expone sus wrappers y métodos existentes. Determina el alcance de las sobrecargas compatibles y verifica las llamadas recursivas y los resultados almacenados en caché mediante tests específicos. El issue estará terminado cuando la API de memoization integrada acordada y su comportamiento estén cubiertos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
With recursion. Example of code:
PoC
using System;
using System.Collections.Generic;
using static Memes;
var fib = Memoize<int, int>((n, fib) =>
n switch
{
<= 1 => 1,
var m => fib(n - 1) + fib(n - 2)
});
Console.WriteLine(fib(40));
public static class Memes
{
public static Func<TIn, TOut> Memoize<TIn, TOut>(Func<TIn, Func<TIn, TOut>, TOut> func)
{
var dic = new Dictionary<TIn, TOut>();
Func<TIn, TOut> rec = null;
rec = tin =>
{
if (dic.TryGetValue(tin, out var res))
return res;
res = func(tin, rec);
dic[tin] = res;
return res;
};
return rec;
}
}
API
public static Func<TIn, TOut> Memoize<TIn, TOut>(Func<TIn, Func<TIn, TOut>> func);
public static (Func<TIn1, TOut1>, Func<TIn2, TOut2>) Memoize<TIn1, TIn2, TOut1, TOut2>(Func<TIn1, Func<TIn1, TOut1>, Func<TIn2, TOut2>, TOut1> func1, Func<TIn2, Func<TIn1, TOut1>, Func<TIn2, TOut2>, TOut2> func2);
...
- Lenguaje dominante
- HTML
- Estrellas
- 49
- Forks
- 4
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ASC-Community/HonkSharp
-
Add `Parallel` methodAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
ASC-Community/HonkSharp#24 ·
-
System.Text.Json supportAbiertoenhancement good first issue
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ASC-Community/HonkSharp#22 · 1 reacción ·
Todos los issues de ASC-Community/HonkSharp
Issues similares
-
fix(workflow): align technical review automation and template labels to kind/reviewPosiblemente ocupada @Tharun-Varshan-S la tomó hoy. Abiertoneeds-group needs-kind needs-triage
Dificultad 1/5 1-3 horas Aptitud para principiantes 84/100
cncf/toc#2326 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
FinanceFlash/unvibecode#233 ·
Los mantenedores suelen responder en 1 día
-
useless-suppression reported for deprecated-* messages that should be exemptPosiblemente ocupada @adityasinha-ghub la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
pylint-dev/pylint#11656 ·
Los mantenedores suelen responder en 1 día
-
Cannot run an integration on windows when power shell is selected as the default profile terminalAbiertoPriority/Blocker Type/Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
wso2/product-integrator#2767 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
compiler-explorer/compiler-explorer#9272 ·
Los mantenedores suelen responder en 1 día