Previous: Advanced Scoring Examples, Up: Advanced Scoring [Contents][Index]

#### 7.15.3 Advanced Scoring Tips

The `&` and `|` logical operators do short-circuit logic. That is, they stop processing their arguments when it’s clear what the result of the operation will be. For instance, if one of the arguments of an `&` evaluates to `false`, there’s no point in evaluating the rest of the arguments. This means that you should put slow matches (‘`body`’, ‘`header`’) last and quick matches (‘`from`’, ‘`subject`’) first.

The indirection arguments (`1-` and so on) will make their arguments work on previous generations of the thread. If you say something like:

    ...
    (1-
     (1-
      ("from" "lars")))
    ...

Then that means “score on the from header of the grandparent of the current article”. An indirection is quite fast, but it’s better to say:

    (1-
     (&
      ("from" "Lars")
      ("subject" "Gnus")))

than it is to say:

    (&
     (1- ("from" "Lars"))
     (1- ("subject" "Gnus")))