converting Maybe type1 in type1 after filtering
i had filtered a [Maybe Text] type to remove Nothing from the list and now i want to put the result in a [Text] type but the compiler complains about the incompatible type :
(bd_rows_WDS :: [Only (Maybe Text)]) <- query conn qry_head_WDS (Only (name::String))
-- remove the records having N°BD NULL
let fltWDS :: [Only Text] = Prelude.filter ((Only a) ->
case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
Prelude> :load UpdateSidonie
[1 of 1] Compiling Main ( UpdateSidonie.hs, interpreted )
UpdateSidonie.hs:282:33: error:
• Couldn't match type ‘Maybe Text’ with ‘Text’
Expected type: [Only Text]
Actual type: [Only (Maybe Text)]
• In the expression:
Prelude.filter
( (Only a)
-> case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
In a pattern binding:
fltWDS :: [Only Text]
= Prelude.filter
( (Only a)
-> case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
In the expression:
do conn <- connect
defaultConnectInfo
{connectHost = "moita", connectUser = "mattei",
connectPassword = "sidonie2", connectDatabase = "sidonie"}
(rows :: [(Text, Double)]) <- query_
conn
"SELECT Nom,distance FROM AngularDistance WHERE distance > 0.000278"
(names :: [Only Text]) <- query_
conn
"SELECT Nom FROM AngularDistance WHERE distance > 0.000278"
let resLstNames = Prelude.map fromOnly names
....
|
282 | let fltWDS :: [Only Text] = Prelude.filter ((Only a) ->
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
Failed, no modules loaded.
how can id do the type conversion,now i'm sure there is no more Nothing values?
haskell
add a comment |
i had filtered a [Maybe Text] type to remove Nothing from the list and now i want to put the result in a [Text] type but the compiler complains about the incompatible type :
(bd_rows_WDS :: [Only (Maybe Text)]) <- query conn qry_head_WDS (Only (name::String))
-- remove the records having N°BD NULL
let fltWDS :: [Only Text] = Prelude.filter ((Only a) ->
case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
Prelude> :load UpdateSidonie
[1 of 1] Compiling Main ( UpdateSidonie.hs, interpreted )
UpdateSidonie.hs:282:33: error:
• Couldn't match type ‘Maybe Text’ with ‘Text’
Expected type: [Only Text]
Actual type: [Only (Maybe Text)]
• In the expression:
Prelude.filter
( (Only a)
-> case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
In a pattern binding:
fltWDS :: [Only Text]
= Prelude.filter
( (Only a)
-> case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
In the expression:
do conn <- connect
defaultConnectInfo
{connectHost = "moita", connectUser = "mattei",
connectPassword = "sidonie2", connectDatabase = "sidonie"}
(rows :: [(Text, Double)]) <- query_
conn
"SELECT Nom,distance FROM AngularDistance WHERE distance > 0.000278"
(names :: [Only Text]) <- query_
conn
"SELECT Nom FROM AngularDistance WHERE distance > 0.000278"
let resLstNames = Prelude.map fromOnly names
....
|
282 | let fltWDS :: [Only Text] = Prelude.filter ((Only a) ->
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
Failed, no modules loaded.
how can id do the type conversion,now i'm sure there is no more Nothing values?
haskell
add a comment |
i had filtered a [Maybe Text] type to remove Nothing from the list and now i want to put the result in a [Text] type but the compiler complains about the incompatible type :
(bd_rows_WDS :: [Only (Maybe Text)]) <- query conn qry_head_WDS (Only (name::String))
-- remove the records having N°BD NULL
let fltWDS :: [Only Text] = Prelude.filter ((Only a) ->
case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
Prelude> :load UpdateSidonie
[1 of 1] Compiling Main ( UpdateSidonie.hs, interpreted )
UpdateSidonie.hs:282:33: error:
• Couldn't match type ‘Maybe Text’ with ‘Text’
Expected type: [Only Text]
Actual type: [Only (Maybe Text)]
• In the expression:
Prelude.filter
( (Only a)
-> case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
In a pattern binding:
fltWDS :: [Only Text]
= Prelude.filter
( (Only a)
-> case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
In the expression:
do conn <- connect
defaultConnectInfo
{connectHost = "moita", connectUser = "mattei",
connectPassword = "sidonie2", connectDatabase = "sidonie"}
(rows :: [(Text, Double)]) <- query_
conn
"SELECT Nom,distance FROM AngularDistance WHERE distance > 0.000278"
(names :: [Only Text]) <- query_
conn
"SELECT Nom FROM AngularDistance WHERE distance > 0.000278"
let resLstNames = Prelude.map fromOnly names
....
|
282 | let fltWDS :: [Only Text] = Prelude.filter ((Only a) ->
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
Failed, no modules loaded.
how can id do the type conversion,now i'm sure there is no more Nothing values?
haskell
i had filtered a [Maybe Text] type to remove Nothing from the list and now i want to put the result in a [Text] type but the compiler complains about the incompatible type :
(bd_rows_WDS :: [Only (Maybe Text)]) <- query conn qry_head_WDS (Only (name::String))
-- remove the records having N°BD NULL
let fltWDS :: [Only Text] = Prelude.filter ((Only a) ->
case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
Prelude> :load UpdateSidonie
[1 of 1] Compiling Main ( UpdateSidonie.hs, interpreted )
UpdateSidonie.hs:282:33: error:
• Couldn't match type ‘Maybe Text’ with ‘Text’
Expected type: [Only Text]
Actual type: [Only (Maybe Text)]
• In the expression:
Prelude.filter
( (Only a)
-> case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
In a pattern binding:
fltWDS :: [Only Text]
= Prelude.filter
( (Only a)
-> case a of
Nothing -> False
Just a -> True)
bd_rows_WDS
In the expression:
do conn <- connect
defaultConnectInfo
{connectHost = "moita", connectUser = "mattei",
connectPassword = "sidonie2", connectDatabase = "sidonie"}
(rows :: [(Text, Double)]) <- query_
conn
"SELECT Nom,distance FROM AngularDistance WHERE distance > 0.000278"
(names :: [Only Text]) <- query_
conn
"SELECT Nom FROM AngularDistance WHERE distance > 0.000278"
let resLstNames = Prelude.map fromOnly names
....
|
282 | let fltWDS :: [Only Text] = Prelude.filter ((Only a) ->
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
Failed, no modules loaded.
how can id do the type conversion,now i'm sure there is no more Nothing values?
haskell
haskell
asked Jan 2 at 8:14
Damien MatteiDamien Mattei
164
164
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can use catMaybes
from Data.Maybe
.
catMaybes :: [Maybe a] -> [a]
PS: It also filter out Nothing
so you do't need to do it yourself.
i try your answer in my code inserting this let fltWDS2 = catMaybes bd_rows_WDS but get the same error : Couldn't match type ‘Only (Maybe Text)’ with ‘Maybe a’
– Damien Mattei
Jan 2 at 8:37
Are you sure error exactly same? I notice that your type not[Maybe Text]
, but[Only (Maybe Text)]
what isOnly
?
– talex
Jan 2 at 8:58
bd_rows_WDS is with Only, fltWDS2 has no type specified
– Damien Mattei
Jan 2 at 13:44
What isOnly
? I'm unable to find definition in hoogle.
– talex
Jan 3 at 2:32
i'm new to haskell i had to use Only for 1-tuple type with database when there is Only one argument or Only one column result i suppose when i used examples about database query, here is the package: hackage.haskell.org/package/Only
– Damien Mattei
Jan 4 at 7:24
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54003147%2fconverting-maybe-type1-in-type1-after-filtering%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use catMaybes
from Data.Maybe
.
catMaybes :: [Maybe a] -> [a]
PS: It also filter out Nothing
so you do't need to do it yourself.
i try your answer in my code inserting this let fltWDS2 = catMaybes bd_rows_WDS but get the same error : Couldn't match type ‘Only (Maybe Text)’ with ‘Maybe a’
– Damien Mattei
Jan 2 at 8:37
Are you sure error exactly same? I notice that your type not[Maybe Text]
, but[Only (Maybe Text)]
what isOnly
?
– talex
Jan 2 at 8:58
bd_rows_WDS is with Only, fltWDS2 has no type specified
– Damien Mattei
Jan 2 at 13:44
What isOnly
? I'm unable to find definition in hoogle.
– talex
Jan 3 at 2:32
i'm new to haskell i had to use Only for 1-tuple type with database when there is Only one argument or Only one column result i suppose when i used examples about database query, here is the package: hackage.haskell.org/package/Only
– Damien Mattei
Jan 4 at 7:24
add a comment |
You can use catMaybes
from Data.Maybe
.
catMaybes :: [Maybe a] -> [a]
PS: It also filter out Nothing
so you do't need to do it yourself.
i try your answer in my code inserting this let fltWDS2 = catMaybes bd_rows_WDS but get the same error : Couldn't match type ‘Only (Maybe Text)’ with ‘Maybe a’
– Damien Mattei
Jan 2 at 8:37
Are you sure error exactly same? I notice that your type not[Maybe Text]
, but[Only (Maybe Text)]
what isOnly
?
– talex
Jan 2 at 8:58
bd_rows_WDS is with Only, fltWDS2 has no type specified
– Damien Mattei
Jan 2 at 13:44
What isOnly
? I'm unable to find definition in hoogle.
– talex
Jan 3 at 2:32
i'm new to haskell i had to use Only for 1-tuple type with database when there is Only one argument or Only one column result i suppose when i used examples about database query, here is the package: hackage.haskell.org/package/Only
– Damien Mattei
Jan 4 at 7:24
add a comment |
You can use catMaybes
from Data.Maybe
.
catMaybes :: [Maybe a] -> [a]
PS: It also filter out Nothing
so you do't need to do it yourself.
You can use catMaybes
from Data.Maybe
.
catMaybes :: [Maybe a] -> [a]
PS: It also filter out Nothing
so you do't need to do it yourself.
answered Jan 2 at 8:16
talextalex
11.5k11648
11.5k11648
i try your answer in my code inserting this let fltWDS2 = catMaybes bd_rows_WDS but get the same error : Couldn't match type ‘Only (Maybe Text)’ with ‘Maybe a’
– Damien Mattei
Jan 2 at 8:37
Are you sure error exactly same? I notice that your type not[Maybe Text]
, but[Only (Maybe Text)]
what isOnly
?
– talex
Jan 2 at 8:58
bd_rows_WDS is with Only, fltWDS2 has no type specified
– Damien Mattei
Jan 2 at 13:44
What isOnly
? I'm unable to find definition in hoogle.
– talex
Jan 3 at 2:32
i'm new to haskell i had to use Only for 1-tuple type with database when there is Only one argument or Only one column result i suppose when i used examples about database query, here is the package: hackage.haskell.org/package/Only
– Damien Mattei
Jan 4 at 7:24
add a comment |
i try your answer in my code inserting this let fltWDS2 = catMaybes bd_rows_WDS but get the same error : Couldn't match type ‘Only (Maybe Text)’ with ‘Maybe a’
– Damien Mattei
Jan 2 at 8:37
Are you sure error exactly same? I notice that your type not[Maybe Text]
, but[Only (Maybe Text)]
what isOnly
?
– talex
Jan 2 at 8:58
bd_rows_WDS is with Only, fltWDS2 has no type specified
– Damien Mattei
Jan 2 at 13:44
What isOnly
? I'm unable to find definition in hoogle.
– talex
Jan 3 at 2:32
i'm new to haskell i had to use Only for 1-tuple type with database when there is Only one argument or Only one column result i suppose when i used examples about database query, here is the package: hackage.haskell.org/package/Only
– Damien Mattei
Jan 4 at 7:24
i try your answer in my code inserting this let fltWDS2 = catMaybes bd_rows_WDS but get the same error : Couldn't match type ‘Only (Maybe Text)’ with ‘Maybe a’
– Damien Mattei
Jan 2 at 8:37
i try your answer in my code inserting this let fltWDS2 = catMaybes bd_rows_WDS but get the same error : Couldn't match type ‘Only (Maybe Text)’ with ‘Maybe a’
– Damien Mattei
Jan 2 at 8:37
Are you sure error exactly same? I notice that your type not
[Maybe Text]
, but [Only (Maybe Text)]
what is Only
?– talex
Jan 2 at 8:58
Are you sure error exactly same? I notice that your type not
[Maybe Text]
, but [Only (Maybe Text)]
what is Only
?– talex
Jan 2 at 8:58
bd_rows_WDS is with Only, fltWDS2 has no type specified
– Damien Mattei
Jan 2 at 13:44
bd_rows_WDS is with Only, fltWDS2 has no type specified
– Damien Mattei
Jan 2 at 13:44
What is
Only
? I'm unable to find definition in hoogle.– talex
Jan 3 at 2:32
What is
Only
? I'm unable to find definition in hoogle.– talex
Jan 3 at 2:32
i'm new to haskell i had to use Only for 1-tuple type with database when there is Only one argument or Only one column result i suppose when i used examples about database query, here is the package: hackage.haskell.org/package/Only
– Damien Mattei
Jan 4 at 7:24
i'm new to haskell i had to use Only for 1-tuple type with database when there is Only one argument or Only one column result i suppose when i used examples about database query, here is the package: hackage.haskell.org/package/Only
– Damien Mattei
Jan 4 at 7:24
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54003147%2fconverting-maybe-type1-in-type1-after-filtering%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown