Tag: STRUCTURAL-PATTERN-MATCHING
Estoy tratando de utilizar el patrón estructural de Python 3.10 en el shell de Python: match a: case (2 – 1): Después de ingresar la segunda línea, me da el siguiente error: File “<stdin>”, line 2 case (2 – 1): ^ SyntaxError: se requiere un número imaginario en un literal . . . Read more
Supongamos el siguiente escenario: sealed trait Status case object Active extends Status case object Inactive extends Status @scala.deprecated(“deprecated because reasons”) case object Disabled extends Status Teniendo en cuenta que el objeto Disabled no se puede eliminar y dado que val status: Status = getStatus, hay uno de los siguientes problemas: . . . Read more
Es muy fácil verificar la exhaustividad de los tipos de suma en TypeScript. type Sum = | { tag: ‘num’; value: number } | { tag: ‘str’; value: string }; const len = (sum: Sum): number => { switch (sum.tag) { case ‘num’: return sum.value; case ‘str’: return sum.value.length; default: . . . Read more
Estaba tratando de entender por qué los patrones n + k están prohibidos en Haskell. Una famosa publicación en StackOverflow da un ejemplo de una función de la siguiente manera: f 0 = 0 f (n + 5) = 5 Haskell muestra un error al emparejar f 1, f 2, . . . Read more
Recientemente estoy realizando un proyecto en Swift que involucra mucho el emparejamiento de patrones con enumeraciones que tienen otras enumeraciones o tuplas como valores asociados. Por ejemplo: switch something { case .someCase(.someOtherCase(let foo, let bar)): // hacer algo con foo y bar… // Luego, someFunction(.someOtherCase(foo, bar)) // otros casos… } . . . Read more