Yes
caveats:
my (un)icon says it is ASCII in &features.
answer: map does it.
the unicon book (p 40) in the 2014 edition has a function
map(string,select,replacements)
(I named the 3 parameters)
the 2nd parameter defaults to the ordered string of uppercase characters
i.e. ABCD .. XYZ
the 3rd parameter defaults to the ordered string of lowercase
characters i.e. abcd .. xyz
Example
map("MyMixed Case String",,)
# the commas are optional
Map looks at the characters in parameter1, and if any match those in
parameter2, they are replaced by the equivalent ones in parameter 3.
e.g 'M' in "My" and "Mixed" is replaced each time by 'm', 'C' in
"Case" is replaced by 'c' and 'S' in "String" is replaced by 's'.
You can get other helpful effects if you don't use the defaults.
toupper(string) is map(string,&lcase,&ucase)
hth Jay Hammond
here is p40
*Listing 3-1*
*A simple concordance program*
procedure main(args)
(*args = 1) | stop("Need a file!")
f := open(args[1]) | stop("Couldn't open ", args[1])
wordlist := table()
lineno := 0
while line := map(read(f)) do {
lineno +:= 1
every word := getword(line) do
if *word > 3 then {
# if word isn't in the table, set entry to empty list
/wordlist[word] := list()
put(wordlist[word], lineno)
}
}
L := sort(wordlist)
every l := !L do {
writes(l[1], "\t")
linelist := ""
# Collect line numbers into a string
every linelist ||:= (!l[2] || ", ")
# trim the final ", "
write(linelist[1:-2])
}
end
procedure getword(s)
s ? while tab(upto(&letters)) do {
word := tab(many(&letters))
suspend word
}
endIf we run this program on this input:
Half a league, half a league,
Half a league onward,
All in the valley of Death
Rode the six hundred.the program writes this output:
death 3
half 1, 2
hundred 4
league 1, 1, 2
onward 2
rode 4
valley 3First, note that the main() procedure requires a command-line
argument, the name of afile to open. Also, we pass all the lines read
through the function map(). This is afunction that takes three
arguments, the first being the string to map; and the second andthird
specifying how the string should be mapped on a character by character
basis. Thedefaults for the second and third arguments are the uppercase
letters and the lowercaseletters, respectively; therefore, the call to
map() converts the line just read in to alllowercase.
On 30/05/2016 20:18, John Sampson wrote:
Does Unicon have the equivalent of Python's "lower" method, to convert a
string from uppercase to lowercase?
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Unicon-group mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/unicon-group
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Unicon-group mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/unicon-group