PasteRack.org
Paste # 15490
2019-12-17 08:55:57

Fork as a new paste.

Paste viewed 672 times.


Embed:

  1. #lang racket
  2.  
  3. (define (gossip keyword sentence)
  4.   (substring
  5.    (foldl (lambda (str1 str2)
  6.             (string-append str2 " " str1))
  7.           ""
  8.           (map glue-phrase
  9.                (let ([keyword (word->syllables keyword)]
  10.                      [words (filter pair? (sentence->syllables sentence))])
  11.                  (map (curry encode-word keyword)
  12.                       words))))
  13.    1))
  14.  
  15. (define (encode-word keyword word)
  16.       (cons (cons (car keyword) (cdr word))
  17.             (list (cons (car word) (cdr keyword)))))
  18.  
  19. (define (glue-phrase phrase)
  20.   (string-append
  21.    (apply string-append
  22.           (car phrase))
  23.    " "
  24.    (apply string-append
  25.           (cadr phrase))))
  26.  
  27. (gossip "груша" "Католическая философия в том смысле в котором я буду применять этот термин это философское направление господствовавшее в европейской мысли со времен Августина до эпохи возрождения")

=>

word->syllables: undefined;

 cannot reference an identifier before its definition

  in module: 'm