-- find the full list of usernames in our data set: the-list-of |usernames> => ket-sort clean author rel-kets[author] |> -- find the inverse-authors: |null> => find-inverse[author] |> extract-time |*> #=> remove-suffix[" EST"] sselect[2,2] ssplit[" at "] |_self> times-op |*> #=> extract-time date-time inverse-author (|kuron:> __ |_self>) is-am |*> #=> has-suffix[" AM"] |_self> is-pm |*> #=> has-suffix[" PM"] |_self> time-to-minutes |*> #=> arithmetic(times-by[60] mod[12] sselect[1,1] ssplit[":"] |_self>, |+>, sselect[2,2] ssplit[":"] |_self>) am-time-to-minutes |*> #=> time-to-minutes such-that[is-am] |_self> pm-time-to-minutes |*> #=> plus[720] time-to-minutes such-that[is-pm] |_self> minutes-op |*> #=> (am-time-to-minutes + pm-time-to-minutes) extract-time date-time inverse-author |_self> -- smooth-minutes-op |*> #=> Gaussian[1.5] (am-time-to-minutes + pm-time-to-minutes) extract-time date-time inverse-author |_self> smooth-minutes-op |*> #=> Gaussian[1.5] minutes |_self> |null> => map[minutes-op, minutes] the-list-of |usernames> |null> => map[smooth-minutes-op, smooth-minutes] the-list-of |usernames> -- filter the list of user names to those that have more than 15 posts: do-you-know-minutes |*> #=> is-greater-than[15] how-many minutes |_self> the-list-of-non-empty |usernames> => such-that[do-you-know-minutes] the-list-of |usernames> -- find kuron's that are at least 50% similar in their smooth minutes arrays: similar-kuron-op |*> #=> drop-below[0.5] ( similar-input[smooth-minutes] smooth-minutes - 1 ) |_self> |null> => map[similar-kuron-op, similar-kuron] the-list-of-non-empty |usernames> -- useful operator to help filter the list of users down to those that have similar kuron's: do-you-know-similar-kuron |*> !=> do-you-know similar-kuron |_self> -- finally, display the table of results: |null> => table[kuron, similar-kuron] such-that[do-you-know-similar-kuron] the-list-of-non-empty |usernames>