View in color | License | Download script | History | Other scripts by: greggirwin |
30-Apr 14:23 UTC
[0.051] 11.211k
[0.051] 11.211k
insert-mru.rREBOL [
Library: [
level: 'beginner
platform: 'all
type: 'function
domain: 'ui
tested-under: [
[View 1.3.2 on WinXP by Gregg]
]
support: none
license: 'MIT
]
title: "Insert - Most Recently Used list idiom"
file: %insert-mru.r
author: "Gregg Irwin"
email: %greggirwin--acm--org
date: 30-Apr-2007
version: 0.0.1
purpose: {
Insert an item in a series, where the series is treated
as an MRU list. That is, the newest item is at the head,
there are no duplicates (inserting a value removes the
previous instance of that value if it exists), and the
series may be limited to a specific size. If a new item
causes the series to grow beyond that size, the last item
is removed.
It is often used with menus of recently accessed files.
}
]
insert-MRU: func [
"Insert value in series, removing first existing instance."
series [series!]
value
/limit size [integer!] "Limit the series to the given size by removing the last item."
] [
remove find/only series value
insert/only series value
if all [size size < length? series] [remove back tail series]
series
] Notes
|