| PasteRack.org | ||
| Paste # 53413 | ||
| 2015-12-02 17:33:06 | ||
Forked from paste # 37164. | ||
Fork as a new paste. | ||
Paste viewed 426 times. | ||
Tweet | ||
Embed: | ||
#lang racket
(define (fold-str-int f i str)
(sequence-fold f i (sequence-map char->integer (in-string str))))
(define (elevator str)
(inexact->exact
(* (fold-str-int
(lambda (i c)
(+ i (- c 40.5))) 0 str) -2)))
(define (disallow-basement str)
(letrec
([make-counter
(lambda ([count 0] [v 0])
(lambda (c)
(let
([v (+ v (- c 40.5))]
[count (+ 1 count)])
(if (< 0 v)
(raise-user-error (~a count))
(make-counter count v)))))])
(inexact->exact
(* (fold-str-int (lambda (f c) (f c)) (make-counter 0 0) str) -2))))
(display (elevator ")())())") (newline)
(disallow-basement "()())")=>
prog:26:0: read: expected a `)' to close `('
possible cause: indentation suggests a missing `)' before line 27
context...:
/home/stchang/racket611/collects/syntax/module-reader.rkt:176:17: body
/home/stchang/racket611/collects/syntax/module-reader.rkt:173:2: wrap-internal
lang:read-syntax
/home/stchang/racket611/share/pkgs/scribble-lib/scribble/private/manual-code.rkt:56:0: typeset-code15
/home/stchang/racket/pasterack/tmp/53413/53413code.scrbl: [running body]
/home/stchang/racket611/share/pkgs/scribble-lib/scribble/run.rkt: [running body]