From 519f3759ea335deadaada94c1779f4cea2e2c020 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Fri, 20 Mar 2020 16:43:14 +0100 Subject: [PATCH] networks,enumerate-boolean-tables: Use boolean-power/stream. --- networks.rkt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/networks.rkt b/networks.rkt index 4692f74..ed1db1c 100644 --- a/networks.rkt +++ b/networks.rkt @@ -453,10 +453,10 @@ ;;; ;;; There are 2^(2^n) Boolean functions of arity n. (define (enumerate-boolean-tables n) - (let ([inputs (boolean-power n)] - [outputs (boolean-power (expt 2 n))]) - (for/stream ([out outputs]) - (for/list ([in inputs] [o out]) + (let ([inputs (boolean-power/stream n)] + [outputs (boolean-power/stream (expt 2 n))]) + (for/stream ([out (in-stream outputs)]) + (for/list ([in (in-stream inputs)] [o out]) (append in (list o)))))) ;;; Returns the stream of all Boolean functions of a given arity. @@ -473,3 +473,9 @@ ;;; There are 2^(2^n) Boolean functions of arity n. (define (enumerate-boolean-functions/list n) (stream-map table->function/list (enumerate-boolean-tables n))) + +;;; Generates a random truth table for a Boolean function of arity n. +#; +(define (random-boolean-function n) + (let ([inputs (boolean-power-n n)]) + ))