stanc3 icon indicating copy to clipboard operation
stanc3 copied to clipboard

[FR] Bool data type?

Open andrjohns opened this issue 2 years ago • 1 comments

Would it be tricky/breaking to add support for a bool/boolean data type? All of the conditional/comparison operators require a boolean value, so users currently have to re-evaluate the condition at each call or rely on the implicit conversion from an int type.

It could make for cleaner syntax to be able to do something like:

data {
  real y_mean;
  bool use_log;
}
parameters {
  real y;
}
model {
  if (use_log) {
    y ~ lognormal(y_mean, 1);
  } else {
    y ~ normal(y_mean, 1);
  }
}

andrjohns avatar May 11 '23 06:05 andrjohns

bool would essentially be syntactic sugar for int <lower=0, upper=1>, so I don't think this would be a breaking change.

Well, I guess reserving the keyword "bool" would be, but we have a policy for that. true and false are already reserved.

WardBrian avatar May 11 '23 13:05 WardBrian