I think that, if called with |length.out=1|, |seq| and |seq.int| should return |start| - no matter the value of the other parameters. Currently they always return |NaN| / error if called with |by=Inf|, for example. |for (n in 4:0) print(seq(1, by=1/(n-1), length.out=n)) # [1] 1.000000 1.333333 1.666667 2.000000 # [1] 1.0 1.5 2.0 # [1] 1 2 # [1] NaN <- this should be 1 # integer(0) for (n in 4:0) print(seq.int(1, by=1/(n-1), length.out=n)) # [1] 1.000000 1.333333 1.666667 2.000000 # [1] 1.0 1.5 2.0 # [1] 1 2 # Error in seq.int(1, by = 1/(n - 1), length.out = n) : <- this should be 1, not an error # 'by' must be a finite number # integer(0) <- (result for n=0) | I believe changing this would prevent quite some edge case bugs, for example this one: |> colorspace::divergingx_hcl(1) Error in seq.int(1, by = -2/(n - 1), length.out = n2) : 'by' must be a finite number | Do see any downside to this? -Jan ? -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature.asc Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20231122/a7945fb2/attachment.sig>