Why do i get the error message for a bool in a if statement
I am trying to make an if statement, where it should see if the list is empty or not. Then it should return a bool of true or false. But i get the error message. How do i correct this.
Lint:
if a then true else false
might be able to be refactored intoa
.
let isGameOver (p : player ) (b : board) : bool =
let fstb = fst b
let sndb = snd b
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
f# boolean
add a comment |
I am trying to make an if statement, where it should see if the list is empty or not. Then it should return a bool of true or false. But i get the error message. How do i correct this.
Lint:
if a then true else false
might be able to be refactored intoa
.
let isGameOver (p : player ) (b : board) : bool =
let fstb = fst b
let sndb = snd b
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
f# boolean
2
Ello, indentation is important in F#. Could you format such that indentation follows the syntax. fsharpforfunandprofit.com/posts/fsharp-syntax
– Terrance
Nov 14 '18 at 13:51
add a comment |
I am trying to make an if statement, where it should see if the list is empty or not. Then it should return a bool of true or false. But i get the error message. How do i correct this.
Lint:
if a then true else false
might be able to be refactored intoa
.
let isGameOver (p : player ) (b : board) : bool =
let fstb = fst b
let sndb = snd b
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
f# boolean
I am trying to make an if statement, where it should see if the list is empty or not. Then it should return a bool of true or false. But i get the error message. How do i correct this.
Lint:
if a then true else false
might be able to be refactored intoa
.
let isGameOver (p : player ) (b : board) : bool =
let fstb = fst b
let sndb = snd b
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
f# boolean
f# boolean
asked Nov 14 '18 at 13:42
Aske M.Aske M.
859
859
2
Ello, indentation is important in F#. Could you format such that indentation follows the syntax. fsharpforfunandprofit.com/posts/fsharp-syntax
– Terrance
Nov 14 '18 at 13:51
add a comment |
2
Ello, indentation is important in F#. Could you format such that indentation follows the syntax. fsharpforfunandprofit.com/posts/fsharp-syntax
– Terrance
Nov 14 '18 at 13:51
2
2
Ello, indentation is important in F#. Could you format such that indentation follows the syntax. fsharpforfunandprofit.com/posts/fsharp-syntax
– Terrance
Nov 14 '18 at 13:51
Ello, indentation is important in F#. Could you format such that indentation follows the syntax. fsharpforfunandprofit.com/posts/fsharp-syntax
– Terrance
Nov 14 '18 at 13:51
add a comment |
3 Answers
3
active
oldest
votes
Your if
expression has the format if a then true else false
so you can refactor it as suggested. You can also replace the use of fst
and snd
with pattern matching:
let isGameOver (p : player) (fstb, sndb) : bool =
List.sum fstb = 0 || List.sum sndb = 0
add a comment |
This is not really an error message, but rather a message from the linter that you might be able to refactor your code.
What the linter is hinting at, is that your function returns true
whenever the expression List.sum (fst b) = 0 || List.sum (snd b) = 0
is true
and false
whenever it is false
. As such, the if
statement is unnecessary.
add a comment |
Why do i get the error message for a bool in a if statement?
How do i correct this?
The part of the code you need to focus on is
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
The result of the if statement is bool
, e.g. true
or false
Lint is smart enough to know that you are using an if
to return a bool
and that the conditional part of the if statements is also a type bool
. What lint is saying is that
if (expr) then
true
else
false
is not needed and can be done the same using just the expression.
So the change is to just use the expression part of the if
like
List.sum (fst b) = 0 || List.sum (snd b) = 0
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%2f53301637%2fwhy-do-i-get-the-error-message-for-a-bool-in-a-if-statement%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Your if
expression has the format if a then true else false
so you can refactor it as suggested. You can also replace the use of fst
and snd
with pattern matching:
let isGameOver (p : player) (fstb, sndb) : bool =
List.sum fstb = 0 || List.sum sndb = 0
add a comment |
Your if
expression has the format if a then true else false
so you can refactor it as suggested. You can also replace the use of fst
and snd
with pattern matching:
let isGameOver (p : player) (fstb, sndb) : bool =
List.sum fstb = 0 || List.sum sndb = 0
add a comment |
Your if
expression has the format if a then true else false
so you can refactor it as suggested. You can also replace the use of fst
and snd
with pattern matching:
let isGameOver (p : player) (fstb, sndb) : bool =
List.sum fstb = 0 || List.sum sndb = 0
Your if
expression has the format if a then true else false
so you can refactor it as suggested. You can also replace the use of fst
and snd
with pattern matching:
let isGameOver (p : player) (fstb, sndb) : bool =
List.sum fstb = 0 || List.sum sndb = 0
answered Nov 14 '18 at 13:49
LeeLee
119k14175245
119k14175245
add a comment |
add a comment |
This is not really an error message, but rather a message from the linter that you might be able to refactor your code.
What the linter is hinting at, is that your function returns true
whenever the expression List.sum (fst b) = 0 || List.sum (snd b) = 0
is true
and false
whenever it is false
. As such, the if
statement is unnecessary.
add a comment |
This is not really an error message, but rather a message from the linter that you might be able to refactor your code.
What the linter is hinting at, is that your function returns true
whenever the expression List.sum (fst b) = 0 || List.sum (snd b) = 0
is true
and false
whenever it is false
. As such, the if
statement is unnecessary.
add a comment |
This is not really an error message, but rather a message from the linter that you might be able to refactor your code.
What the linter is hinting at, is that your function returns true
whenever the expression List.sum (fst b) = 0 || List.sum (snd b) = 0
is true
and false
whenever it is false
. As such, the if
statement is unnecessary.
This is not really an error message, but rather a message from the linter that you might be able to refactor your code.
What the linter is hinting at, is that your function returns true
whenever the expression List.sum (fst b) = 0 || List.sum (snd b) = 0
is true
and false
whenever it is false
. As such, the if
statement is unnecessary.
answered Nov 14 '18 at 13:51
torbondetorbonde
1,1481817
1,1481817
add a comment |
add a comment |
Why do i get the error message for a bool in a if statement?
How do i correct this?
The part of the code you need to focus on is
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
The result of the if statement is bool
, e.g. true
or false
Lint is smart enough to know that you are using an if
to return a bool
and that the conditional part of the if statements is also a type bool
. What lint is saying is that
if (expr) then
true
else
false
is not needed and can be done the same using just the expression.
So the change is to just use the expression part of the if
like
List.sum (fst b) = 0 || List.sum (snd b) = 0
add a comment |
Why do i get the error message for a bool in a if statement?
How do i correct this?
The part of the code you need to focus on is
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
The result of the if statement is bool
, e.g. true
or false
Lint is smart enough to know that you are using an if
to return a bool
and that the conditional part of the if statements is also a type bool
. What lint is saying is that
if (expr) then
true
else
false
is not needed and can be done the same using just the expression.
So the change is to just use the expression part of the if
like
List.sum (fst b) = 0 || List.sum (snd b) = 0
add a comment |
Why do i get the error message for a bool in a if statement?
How do i correct this?
The part of the code you need to focus on is
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
The result of the if statement is bool
, e.g. true
or false
Lint is smart enough to know that you are using an if
to return a bool
and that the conditional part of the if statements is also a type bool
. What lint is saying is that
if (expr) then
true
else
false
is not needed and can be done the same using just the expression.
So the change is to just use the expression part of the if
like
List.sum (fst b) = 0 || List.sum (snd b) = 0
Why do i get the error message for a bool in a if statement?
How do i correct this?
The part of the code you need to focus on is
if List.sum (fst b) = 0 || List.sum (snd b) = 0 then
true
else
false
The result of the if statement is bool
, e.g. true
or false
Lint is smart enough to know that you are using an if
to return a bool
and that the conditional part of the if statements is also a type bool
. What lint is saying is that
if (expr) then
true
else
false
is not needed and can be done the same using just the expression.
So the change is to just use the expression part of the if
like
List.sum (fst b) = 0 || List.sum (snd b) = 0
answered Nov 14 '18 at 13:50
Guy CoderGuy Coder
15.4k43983
15.4k43983
add a comment |
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%2f53301637%2fwhy-do-i-get-the-error-message-for-a-bool-in-a-if-statement%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
2
Ello, indentation is important in F#. Could you format such that indentation follows the syntax. fsharpforfunandprofit.com/posts/fsharp-syntax
– Terrance
Nov 14 '18 at 13:51