I wanted to understand the concept of non-truth function (which I found when reading about conditionals in logic). The definition of non-truth function that I have is (from reddit):

If a connective is not truth functional, you need something more than the truth value of the parts in order to know whether the compound is true.

Or as the absence of truth function:

So if a connective is truth functional, you can calculate the truth value of the compound sentence from the truth values of the parts.

In other words, if we have a functional that receives boolean values (caused by some propositions I assume) then we cannot unambiguously assign it a truth (boolean) value.

The abstract definitions sort of make sense to me but when I try to come up with a concrete single example that elucidates the concept transparently I can't find one with an explanation that makes sense to me.

For example, one that looks promising is an example provided in the reddit thread:

Sentence 2) John is happy because Mary is home.

It seems that the use of "because" is the "typical" example of non-functionals (and "before" or "it is possible that"), however, I find the ones using "because" the most troubling.

In the sentence above, it explains that John is happy because Mary is home. If it were for any other reason why would the sentence use the word "because"? It nearly feels that the "because" is equivalent to an implication:

If (Mary is home) then (John is happy)

If that is the case, then the "because" can be used in the same way as a conditional of propositional logic. If that were not the case, how is it that we need extra information to discover if that functional is true or not? It seems to unambiguously assign truth values. What "extra" info do we need?

Can someone show me a clear example of a function that could be assigned the value true and false, or unknown even, for example, F(A,B) = F(True,True) where A and B are propositions that might be true or false?

Related: