Skip to content

Conversation

@JNAOB
Copy link
Collaborator

@JNAOB JNAOB commented Nov 20, 2025

CLOSE #301

arrowsKey = arrowsKey' [Impl, BackImpl, Equi]

arrowsKey' :: OutputCapable m => [BinOp] -> LangM m
arrowsKey' [] = pure ()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Somehow the implementation below appears too convoluted to me.

We know that the [BinOp] list passed to here will not contain anything aside from Impl, BackImpl, Equi, right?

Then, for example, op == Equi could simply be the first case, and op == Impl || op == BackImpl could be turned into otherwise.

@jvoigtlaender
Copy link
Member

This:

Probably in the first few (syntax) tasks we should in the future set (BackImpl, 0) instead of (BackImpl, 1).

could be reflected now by adding code comments to places like this:

task03 :: ComposeFormulaConfig
task03 = ComposeFormulaConfig
{ syntaxTreeConfig = SynTreeConfig
{ minNodes = 10
, maxNodes = 14
, minDepth = 4
, maxDepth = 6
, availableAtoms = "ABCDE"
, minAmountOfUniqueAtoms = 5
, binOpFrequencies = listToFM
[ (And, 1)
, (Or, 1)
, (Impl, 1)
, (BackImpl, 1)

i.e., something like

      , (BackImpl, 1)  -- should be (BackImpl, 0) in future

in the last line there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Less frequent use of BackImpl

2 participants