Mathematica Pattern matching and replace repeated

  • Context: Mathematica 
  • Thread starter Thread starter 6.28318531
  • Start date Start date
  • Tags Tags
    Mathematica
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 3K views
6.28318531
Messages
51
Reaction score
0
I decided to ask here as well, because maybe someone will see it. Given a list of integers, use pattern matching and //.to create a rule that generates an ordered list of integers that are larger than the previous numbers in the list, eg given {3,5,2,0,6,1,8,4,9}, you should get {3,5,6,8,9}.I tried something like rules = {x_,y_,__}/;x>y -> {x,___}, calling our list L, L//.rules . I haven't really used this function before, what is the correct syntax? I want to check pairs of numbers and discard one if its less than the other. Any help would be appreciated.
 
Physics news on Phys.org
Here is one version (without rules):

Code:
larger[lst_] := Select[Transpose[{lst, Prepend[Most[lst], lst[[1]] - 1]}], #[[1]] > #[[2]] &][[All, 1]]

e.g.

Code:
larger[{3, 5, 2, 0, 6, 1, 8, 4, 9}]

gives:

Code:
{3, 5, 6, 8, 9}