Comment detail
与えた条件を満たす候補 (Nested Flatten)#(not not not) などに対応できる版を Squeak Smalltalk で。
1 2 3 4 5 6 7 8 9 10 | | input numArgs |
input := #(& | not &).
numArgs := (input collect: [:sel | sel numArgs]) sum + 1.
World findATranscript: nil.
{true. false} asDigitsToPower: numArgs do: [:xs |
| xsStream expression |
xsStream := xs readStream.
expression := input inject: xsStream next printString into: [:expStr :sel |
expStr, ' ', sel, (sel == #not ifFalse: [xsStream next printString] ifTrue: [''])].
(Compiler evaluate: expression) ifTrue: [Transcript cr; show: xs]]
|





sumim
#2106()
[
Smalltalk
]
Rating0/0=0.00
| input selStream | input := #(and or not and). input replaceAll: #and with: #&. input replaceAll: #or with: #|. selStream := input readStream. World findATranscript: nil. {true. false} asDigitsToPower: 4 do: [:xs | selStream reset. (xs allButFirst inject: xs first into: [:result :each | | selector | selector := selStream next. selStream peek = #not ifTrue: [each := each perform: selStream next]. result perform: selector with: each]) ifTrue: [Transcript cr; show: xs]] "=> #(true true true true) #(true true false true) #(true false false true) #(false true false true) #(false false false true) "Rating0/0=0.00-0+
1 reply [ reply ]