Re: [vox] the lugod faq
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [vox] the lugod faq
On Mon, 22 Apr 2002, Mark K. Kim wrote:
> Mike Egan's postings always needs to be trimmed before being made public.
> Always. No exceptions. Same with Mike Simon's postings.
Oh yes, and one more thing. You want to have some fun? Take any of the
long posts here and pass them through "travesty"
(Taken from the older Oreily perl book)
#!/usr/bin/perl
# Usage: travesty [files]
# First analyze the input.
while (<>) {
# Handle article headers and ">>>" quotes.
next if /^\./;
next if /^From / .. /^$/;
next if /^Path: / .. /^$/;
s/^\W+//;
# Do each word.
push(@ary,split(' '));
while ($#ary > 1) {
$a = $p;
$p = $n;
$w = shift(@ary);
$n = $num{$w};
if ($n eq '') {
push(@word,$w);
$n = pack('S',$#word);
$num{$w} = $n;
}
$lookup{$a . $p} .= $n;
}
}
# Now spew out the words, based on the frequencies. If there
# is more than one possibility to choose from, choose one
# randomly.
for (;;) {
$n = $lookup{$a . $p};
($foo,$n) = each(lookup) if $n eq ''; # A bootstrap.
$n = substr($n,int(rand(length($n))) & 0177776,2);
$a = $p;
$p = $n;
($w) = unpack('S',$n);
$w = $word[$w];
# See if word fits on line.
$col += length($w) + 1;
if ($col >= 65) {
$col = 0;
print "\n";
}
else {
print ' ';
}
print $w;
# Paragraph every 10 sentences or so.
if ($w =~ /\.$/) {
if (rand() < .1) {
print "\n";
$col = 80;
}
}
}
_______________________________________________
vox mailing list
vox@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox
|