Pregunta

Básicamente, tengo una función que usa Maybe Int para mostrar un problema de Sudoku.La Solución del Sudoku contiene sólo Ints y el código para mostrar la Cuadrícula será casi idéntico, con la excepción de Maybe Int usado para Problemas e Int usado para Soluciones.

¿Es posible utilizar valores Int para una función que requiere Maybe Int? Si es así, ¿cómo?

Editar:Simplemente funcionaría, ¿hay alguna manera de convertir una lista de Int en tal vez Int?

¿Fue útil?

Solución

Si xs es un [Int] y quieres un [Maybe Int] en su lugar, use map Just xs.

Otros consejos

solo usa "solo".

foobar :: Maybe Int -> IO ()
foobar x = print x

main = foobar (Just 3)

Para convertir una lista, podría usar el mapa.

maybeList :: [a] -> [Maybe a]
maybeList = map Just

Si realiza Just en la lista en sí, terminará con Maybe [Int].

La función GENACOCODICETGODEDOCODE EN PRELUDE hace todo lo contrario de lo que necesita, pero la versión sequence en sequence funciona para usted:

import Data.Traversable as T

T.sequence $ Just [1..10]
--[Just 1,Just 2,Just 3,Just 4,Just 5,Just 6,Just 7,Just 8,Just 9,Just 10]

Por supuesto, Traversable es más fácil en su caso, pero mi versión es útil si tiene una lista dentro de map Just.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top