mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-24 10:01:47 +02:00
monads: Add 'mparameterize'.
* etc/system-tests.scm (mparameterize): Move to...
* guix/monads.scm (mparameterize): ... here.
* tests/monads.scm ("mparameterize"): New test.
* .dir-locals.el (c-mode): Add it.
This commit is contained in:
+14
-1
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -137,6 +137,19 @@
|
||||
%monads
|
||||
%monad-run))
|
||||
|
||||
(test-assert "mparameterize"
|
||||
(let ((parameter (make-parameter 'outside)))
|
||||
(every (lambda (monad run)
|
||||
(equal?
|
||||
(run (mlet monad ((outer (return (parameter)))
|
||||
(inner
|
||||
(mparameterize monad ((parameter 'inside))
|
||||
(return (parameter)))))
|
||||
(return (list outer inner (parameter)))))
|
||||
'(outside inside outside)))
|
||||
%monads
|
||||
%monad-run)))
|
||||
|
||||
(test-assert "mlet* + text-file + package-file"
|
||||
(run-with-store %store
|
||||
(mlet* %store-monad ((guile (package-file %bootstrap-guile "bin/guile"))
|
||||
|
||||
Reference in New Issue
Block a user