Skip to content

Instantly share code, notes, and snippets.

@yamasushi
Last active December 15, 2015 02:09
Show Gist options
  • Select an option

  • Save yamasushi/5184681 to your computer and use it in GitHub Desktop.

Select an option

Save yamasushi/5184681 to your computer and use it in GitHub Desktop.
;------------------------------------------
;%seq%generator.scm
(define-module %seq%generator (extend gauche.generator)
(export
%seq%null
%seq%concatenate
%seq%map
%seq%filter
%seq%unfold
%seq%for-each
x->%seq%
%seq%->list
%seq%->lseq
%seq%->generator
) )
(select-module %seq%generator)
(define %seq%null null-generator)
(define %seq%concatenate gconcatenate)
(define %seq%map gmap)
(define %seq%filter gfilter)
(define %seq%unfold gunfold)
(define %seq%for-each generator-for-each)
(define x->%seq% x->generator)
(define %seq%->list generator->list)
(define %seq%->lseq generator->lseq)
(define %seq%->generator identity)
;------------------------------------------------------
; %seq%lseq.scm
(define-module %seq%lseq (extend gauche.lazy)
(export
%seq%null
%seq%concatenate
%seq%map
%seq%filter
%seq%unfold
%seq%for-each
x->%seq%
%seq%->lseq
%seq%->list
) )
(select-module %seq%lseq)
(define %seq%null '())
(define %seq%concatenate lconcatenate)
(define %seq%map lmap)
(define %seq%filter lfilter)
(define %seq%unfold lunfold)
(define %seq%for-each for-each)
(define x->%seq% x->lseq)
(define %seq%->lseq identity)
(define %seq%->list identity)
;------------------------------------------------------
; %seq%stream.scm
(define-module %seq%stream (extend util.stream)
(use komono-base )
(export
%seq%null
%seq%concatenate
%seq%map
%seq%filter
%seq%unfold
%seq%for-each
x->%seq%
%seq%->list
%seq%->string
%seq%->stream
) )
(select-module %seq%stream)
(define %seq%null stream-null)
(define %seq%concatenate stream-concatenate)
(define %seq%map stream-map)
(define %seq%filter stream-filter)
(define %seq%for-each stream-for-each)
(define %seq%->list stream->list)
(define %seq%->string stream->string)
(define %seq%unfold stream-unfold)
(define x->%seq% x->stream)
(define %seq%->stream identity)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment