September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -1,2 +0,0 @@
|
|||
---
|
||||
note: Semordnilap
|
||||
|
|
@ -1,56 +1,28 @@
|
|||
text
|
||||
reverse(text s)
|
||||
{
|
||||
data b;
|
||||
integer i;
|
||||
integer p;
|
||||
record r;
|
||||
file f;
|
||||
text s;
|
||||
|
||||
i = length(s);
|
||||
while (i) {
|
||||
i -= 1;
|
||||
b_insert(b, -1, s[i]);
|
||||
}
|
||||
f_affix(f, "unixdict.txt");
|
||||
|
||||
return b_string(b);
|
||||
while (f_line(f, s) != -1) {
|
||||
r[s] = 0;
|
||||
}
|
||||
|
||||
integer
|
||||
main(void)
|
||||
{
|
||||
integer c, p;
|
||||
record r;
|
||||
file f;
|
||||
text s;
|
||||
p = 0;
|
||||
|
||||
f_affix(f, "unixdict.txt");
|
||||
for (s in r) {
|
||||
text t;
|
||||
|
||||
while (f_line(f, s) != -1) {
|
||||
r_p_integer(r, s, 0);
|
||||
}
|
||||
|
||||
c = 0;
|
||||
p = 0;
|
||||
|
||||
if (r_first(r, s)) {
|
||||
do {
|
||||
text t;
|
||||
|
||||
t = reverse(s);
|
||||
if (compare(s, t) > 0) {
|
||||
if (r_key(r, t)) {
|
||||
p += 1;
|
||||
if (c < 5) {
|
||||
c += 1;
|
||||
o_text(s);
|
||||
o_byte(' ');
|
||||
o_text(t);
|
||||
o_byte('\n');
|
||||
}
|
||||
}
|
||||
t = b_string(b_reverse(b_draft(s)));
|
||||
if (s > t) {
|
||||
if (r_key(r, t)) {
|
||||
p += 1;
|
||||
if (p <= 5) {
|
||||
o_(s, " ", t, "\n");
|
||||
}
|
||||
} while (r_greater(r, s, s));
|
||||
}
|
||||
}
|
||||
|
||||
o_form("Semordnilap pairs: ~\n", p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
o_form("Semordnilap pairs: ~\n", p);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
fun semordnilap() {
|
||||
val words = File("unixdict.txt").readLines().toSet()
|
||||
val pairs = words.asSequence().map { it to it.reversed() } // Pair(word, reversed word)
|
||||
.filter { it.first < it.second && it.second in words }.toList() // avoid dupes+palindromes, find matches
|
||||
println("Found ${pairs.size()} semordnilap pairs")
|
||||
import java.io.File
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val words = File("/usr/share/dict/words").readLines().toSet()
|
||||
val pairs = words.map { Pair(it, it.reversed()) }
|
||||
.filter { it.first < it.second && it.second in words } // avoid dupes+palindromes, find matches
|
||||
println("Found ${pairs.size} semordnilap pairs")
|
||||
println(pairs.take(5))
|
||||
}
|
||||
|
|
|
|||
9
Task/Semordnilap/Zkl/semordnilap.zkl
Normal file
9
Task/Semordnilap/Zkl/semordnilap.zkl
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
var [const] words= // create hashed unixdict of striped words (word:True, ...)
|
||||
File("dict.txt").howza(11).pump(Dictionary().howza(8).add.fp1(True));
|
||||
ss:=words.pump(List, // push stripped unixdict words through some functions
|
||||
fcn(w){ words.holds(w.reverse()) }, Void.Filter, // filter palindromes
|
||||
// create ("word","drow") if "word"<"drow" (ie remove duplicates)
|
||||
fcn(w){ r:=w.reverse(); if(w<r) T(w,r) else Void.Skip });
|
||||
|
||||
ss.len().println(); //--> 158
|
||||
ss.shuffle()[0,5].println();
|
||||
Loading…
Add table
Add a link
Reference in a new issue