Why do i get the error message for a bool in a if statement












0















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 into a.




  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









share|improve this question


















  • 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
















0















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 into a.




  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









share|improve this question


















  • 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














0












0








0








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 into a.




  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









share|improve this question














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 into a.




  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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










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














  • 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












3 Answers
3






active

oldest

votes


















4














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





share|improve this answer































    3














    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.






    share|improve this answer































      2















      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





      share|improve this answer























        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
        });


        }
        });














        draft saved

        draft discarded


















        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









        4














        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





        share|improve this answer




























          4














          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





          share|improve this answer


























            4












            4








            4







            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





            share|improve this answer













            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






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 14 '18 at 13:49









            LeeLee

            119k14175245




            119k14175245

























                3














                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.






                share|improve this answer




























                  3














                  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.






                  share|improve this answer


























                    3












                    3








                    3







                    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.






                    share|improve this answer













                    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.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Nov 14 '18 at 13:51









                    torbondetorbonde

                    1,1481817




                    1,1481817























                        2















                        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





                        share|improve this answer




























                          2















                          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





                          share|improve this answer


























                            2












                            2








                            2








                            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





                            share|improve this answer














                            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






                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Nov 14 '18 at 13:50









                            Guy CoderGuy Coder

                            15.4k43983




                            15.4k43983






























                                draft saved

                                draft discarded




















































                                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.




                                draft saved


                                draft discarded














                                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





















































                                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







                                Popular posts from this blog

                                Bressuire

                                Vorschmack

                                Quarantine