Hi there Kon,
As I was porting something that needed it, I did a quick port of the
combinators egg to C5... I did it with cond-expand so the same codebase
works for C4 and C5 rather than making a new fork.
Please find it attached - if you like it it's all yours, and I'll gladly
add it to the C5 egg list if you wish :-)
Thanks for the eggs,
Alaric
diff combinators/bi-combinators.scm combinators.c5/bi-combinators.scm
10,11c10
< scheme
< chicken)
---
> scheme)
12a12,16
> (cond-expand
> (chicken-4
> (import chicken))
> (chicken-5
> (import (chicken base))))
diff combinators/generic-section-combinators.scm combinators.c5/generic-section-combinators.scm
16,20c16
< (import
< (except scheme map)
< chicken
< (only data-structures identity)
< (only srfi-1 circular-list map))
---
> (import (except scheme map))
22c18,29
< (require-library data-structures srfi-1)
---
> (cond-expand
> (chicken-4
> (require-library data-structures srfi-1)
> (import
>
> chicken
> (only data-structures identity)
> (only srfi-1 circular-list map)))
> (chicken-5
> (import (chicken base))
> (import
> (only srfi-1 circular-list map))))
diff combinators/logical-combinators.scm combinators.c5/logical-combinators.scm
10c10,17
< (import scheme chicken data-structures srfi-1)
---
> (import scheme)
>
> (cond-expand
> (chicken-4
> (import chicken data-structures srfi-1))
> (chicken-5
> (import (chicken base))
> (import srfi-1)))
diff combinators/section-combinators.scm combinators.c5/section-combinators.scm
13,16c13,24
< scheme
< chicken
< (only srfi-1 drop drop-right circular-list)
< (only data-structures identity))
---
> scheme)
>
> (cond-expand
> (chicken-4
> (import chicken)
> (import (only srfi-1 drop drop-right circular-list))
> (import (only data-structures identity))
> (require-library srfi-1))
> (chicken-5
> (import (chicken base))
> (import (only srfi-1 drop drop-right circular-list))
> (import (only (chicken base) identity))))
18d25
< (require-library srfi-1)
diff combinators/sort-combinators.scm combinators.c5/sort-combinators.scm
12,16c12
< (import
< scheme
< chicken
< (only srfi-1 span)
< (only bi-combinators bi-each))
---
> (import scheme)
18c14,23
< (require-library srfi-1 bi-combinators)
---
> (cond-expand
> (chicken-4
> (import chicken)
> (import (only srfi-1 span))
> (import (only bi-combinators bi-each))
> (require-library srfi-1 bi-combinators))
> (chicken-5
> (import (chicken base))
> (import (only srfi-1 span))
> (import (only bi-combinators bi-each))))
diff combinators/stack-combinators.scm combinators.c5/stack-combinators.scm
18c18
< (import scheme chicken)
---
> (import scheme)
19a20,24
> (cond-expand
> (chicken-4
> (import chicken))
> (chicken-5
> (import (chicken base))))
diff combinators/tri-combinators.scm combinators.c5/tri-combinators.scm
10,12c10,16
< scheme
< chicken)
<
---
> scheme)
>
> (cond-expand
> (chicken-4
> (import chicken))
> (chicken-5
> (import (chicken base))))
diff combinators/uni-combinators.scm combinators.c5/uni-combinators.scm
9,11c9,15
< (import
< scheme
< chicken)
---
> (import scheme)
>
> (cond-expand
> (chicken-4
> (import chicken))
> (chicken-5
> (import (chicken base))))
;;;; combinators.meta -*- Hen -*-
((category data)
(author "[[kon lovett]]")
(license "Public Domain")
(synopsis "Combinators")
(test-dependencies test)
(version "1.2.1")
(components
(extension uni-combinators
(csc-options -optimize-level 3))
(extension bi-combinators
(csc-options -optimize-level 3))
(extension tri-combinators
(csc-options -optimize-level 3))
(extension section-combinators
(csc-options -optimize-level 3))
#;(extension generic-section-combinators
(csc-options -optimize-level 3))
(extension logical-combinators
(csc-options -optimize-level 3))
(extension sort-combinators
(csc-options -optimize-level 3)
(component-dependencies bi-combinators))
(extension stack-combinators
(csc-options -optimize-level 3))))