Re[5]: Про типы и логику
От: os24ever Россия
Дата: 07.02.15 20:18
Оценка: 21 (1)
M>Можно код полностью, пожалуйста? А то «добавь тут, добавь там, допущены к исполнению» — это как-то сверх-абстрактно
Флажки будет проверять функция:
order_is(Tuple, Element) -> 
  lists:member(Element, tuple_to_list(Tuple)).

Её заголовок будет таким:
approve({order, {data, D}, {flags, F}}) when order_is(F, checked) -> 
  % 
  % До этого места дойдём только если в кортеже {order, {data, ...}, {flags, ...}} 
  % есть кортеж {flags, ...} и в нём есть элемент checked, то есть если он выглядит 
  % как {flags, ..., checked, ..., ..., ...} 
  % 

.

А вызывать её будем так:
case approve(Order) of
  {ok, ...} ->
       ...
  _ ->
      exit(badOrderstState)
end.

По аналогии с операторами в C, переключающими и проверяющими битовые флажки.
Только здесь при добавлении/отключении флажка придётся заново создавать новый кортеж Order.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.