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

  • Home
  • SEARCH
  • 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 6860997
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T02:28:45+00:00 2026-05-27T02:28:45+00:00

If there are multiple boolean expressions as arguments to the which function, are they

  • 0

If there are multiple boolean expressions as arguments to the which function, are they evaluated lazily?

For example:

which(test1 & test2)

If test1 returns false, then test2 is not evaluated as the compound expression will be false anyway.

  • 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-27T02:28:46+00:00Added an answer on May 27, 2026 at 2:28 am

    With if there can be efficiency gains as a result of that behavior. It is documented to work that way, and I don’t think it is due to lazy evaluation. Even if you “force()-ed” that expression it would still only evaluate a series of &’s until it had a single FALSE. See this help page:

    ?Logic
    

    @XuWang probably deserved the credit for emphasizing the difference between “&” and “&&”. The “&” operator works on vectors and returns vectors. The “&&” operator acts on scalars (actually vectors of length==1) and returns a vector of length== 1. When offered a vector or length >1 as either side of the arguments, it will work on only the information in the first value of each and emit a warning. It is only the “&&” version that does what is being called “lazy” evaluation. You can see that hte “&” operator is not acting in a “lazy fashion with a simepl test:

     fn1 <- function(x) print(x)
     fn2 <- function(x) print(x)
     x1 <- sample(c(TRUE, FALSE), 10, replace=TRUE)
    
     fn1(x1) & fn2(x1)  # the first two indicate evaluation of both sides regardless of first value
    # [1] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
    # [1] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
    # [1] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

There are multiple overloads for sqlcommand.Parameters.Add(...) function. Some of them do not take size,
I have an application where there are multiple processes. They share the reading and
When a function returns a boolean you can easily if (task()){ // it worked!
Why are there multiple (2) web.config files: 1 in the root directory 1 in
There are multiple values I have been storing in ASP.NET configSections sections for each
There are multiple ways to fill an NSTableView up with data through either bindings,
Is there a multiple instances pattern in F# somewhere? Consider that I'm working on
Say there are multiple requests in a integration test, some of them are local
While there are multiple ways to reverse bit order in a byte, I'm curious
I know there are multiple solutions online, but some are for windows, some are

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.