Два года в /fg/. Войти !bnw Сегодня Клубы

Родилось в одним из диалогов с дедфудом.

Позволяет юзать синтаксис как у околохацкеля чтобы задавать значения и объявлять лямбдочки.
Для полноценной костылезации надо переопределять свой reader через #lang, что делать конечно лень.

;; gayfood.rkt
#lang racket

(require syntax/parse)
(require (for-syntax syntax/parse))
(provide (all-defined-out))

(begin-for-syntax
 (define-syntax-class gaylambda
   #:literals (->)
   (pattern (-> (arg:id ...) body:expr))))

(define-syntax (-> stx)
  (syntax-parse stx
                [f:gaylambda #'(lambda (f.arg ...) f.body)]))

(define-syntax (= stx)
  (syntax-parse stx
                #:literals (=)
                [(= a:id b:expr) #'(define a b)]))
;; test
#lang sweet-exp racket
require("gayfood.rkt")

{ closureLambda = {(i) -> {i * i}} }

printf("closureLambda(10) = ~a\n" closureLambda(10)) 

выводит 100, охуеть, правда?

#TWRFWN / @ninesigns / 3727 дней назад

в миу смотрится мегауебищно
#TWRFWN/5IN / @ninesigns / 3727 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.