# От книгата The Icon programming language, 3rd ed. (R. E. Griswold, M. T. Griswold). # Програмата чете двойки от низове от стандартния вход и за всеки общ елемент # между низовете в двойка извежда „кръст“ с пресичане в общото място. # Във всяка двойка на входа низовете са разделени с двоеточие. procedure main() local line, j while line := read() do { write() j := upto(':',line) cross(line[1:j],line[j+1:0]) } end # procedure cross(s1,s2) local j, k every j := upto(s2,s1) do every k := upto(s1[j],s2) do xprint(s1,s2,j,k) end # procedure xprint(s1,s2,j,k) write() every write(right(s2[1 to k-1], j)) write(s1) every write(right(s2[k+1 to *s2], j)) end