Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3275856
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T19:11:29+00:00 2026-05-17T19:11:29+00:00

I need a function that works like this: foo :: Integer -> Integer ->

  • 0

I need a function that works like this:

foo :: Integer -> Integer -> [Integer]
foo a b = do
           let result = []
           let Coord x y = boo a b
           if x > 0
              let result = result ++ [3]
           if y > 0 
              let result = result ++ [5]
           if x < a
              let result = result ++ [7]
           if y < b
              let result = result ++ [9]
           result

I can not use the guards because the result can have more then one element. But as I see I can not use ‘let’ in the ‘if’ expression:

all_possible_combinations.hs:41:14: parse error on input `let'

How can I check multiple expressions and add new elements in the list?
I search not only imperative solution, but the functional one.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-17T19:11:29+00:00Added an answer on May 17, 2026 at 7:11 pm

    Other people have said why what you tried doesn’t work. Here is a concise way of doing what you want:

    foo :: Integer -> Integer -> [Integer]
    foo a b = map snd (filter fst [(x > 0, 3),
                                   (y > 0, 5),
                                   (x < a, 7),
                                   (y < a, 9)])
      where Coord x y = boo a b
    

    So how does this work?

    We start with a list of pairs. The second element of each pair is the value we might want to include in the return value from foo. The first element of each pair tells us whether we actually want to include it.

    Then we call filter fst, which throws away all the pairs where the condition is false.

    Finally, we call map snd, which throws away the conditions (all the ones that are left are true), and keeps the values we are interested in.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need a function that I can call when somthing is done, for example
Need a function like: function isGoogleURL(url) { ... } that returns true iff URL
I have a function that works like that: (the-function [one] [two] [three]) and I
I want to have a macro dbtest that can be used like this: (dbtest
I need to be able to write a function that shows repeated words from
Need a function that takes a character as a parameter and returns true if
I need to test a function that needs to query a page on an
I need a function count_permutations() that returns the number of permutations of a given
I need to write a function that takes 4 bytes as input, performs a
in delphi7 i have a function that i need to return a array as

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.