PasteRack.org
Paste # 43183
2019-12-17 09:11:33

Fork as a new paste.

Paste viewed 804 times.


Embed:

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

=>

word->syllables: undefined;

 cannot reference an identifier before its definition

  in module: 'm