Abuse filter log

Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to navigation Jump to search
Details for log entry 8,966

12:58, 15 May 2025: TenBillionPlusOne (talk | contribs) triggered filter 16, performing the action "edit" on Hakerh. Actions taken: Disallow; Filter description: the "User:" must not be hidden on links to userspace (examine)

Changes made in edit

* If no definition is found, evaluate X and return unique function which returns itself.
* If no definition is found, evaluate X and return unique function which returns itself.


Recursion is not only allowed, but also encouraged.
Recursion is allowed.

== Intention ==

There are two reasons why I created this language:
* To begin the transformation into [[User:Hakerh400|Hakerh400]],
* To explore the simulation of sets and types by functions. Set can be simulated by a function that returns T if value is in the set and F otherwise. Set defined in such way can also simulate type, because <code>f[x]</code> in function definition causes the definition to be used only if x is in f.


== Examples ==
== Examples ==

Action parameters

VariableValue
Edit count of the user (user_editcount)
259
Name of the user account (user_name)
'TenBillionPlusOne'
Age of the user account (user_age)
3037072
Page ID (page_id)
22626
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'Hakerh'
Full page title (page_prefixedtitle)
'Hakerh'
Action (action)
'edit'
Edit summary/reason (summary)
''
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
''''Hakerh''' is an esolang by [[User:TBPO]] that imitates [[User:Hakerh400]]'s esolangs. I made a timestamp below to mark where my transformation into Hakerh400 begun: [[User:TenBillionPlusOne|TB]][[User talk:TenBillionPlusOne|PO]] 11:32, 15 May 2025 (UTC) == Syntax == The program consists of function definitions: f(X) = Y Where uppercase letters (except T, F and N) are any expressions. T, F and N are built-in functions that return themselves. f returns a function with name f. <code>X(Y)</code> calls function X with argument Y. <code>X[Y]</code> returns Y if <code>X[Y]</code> is T and N if isn't. === Syntactic sugar === There is some syntactic sugar to simplify and shorten the code. For example, <code>let a, b</code> is equivalement to: a(x) = a b(x) = b <code>f(X,Y)</code> is equivalement to <code>f(X)(Y)</code>, and <code>f(X,Y) = Z</code> is equivalement to: f(X) = g g(Y) = Z <code>f(X.Y) = Z</code>: f(X) = Z f(Y) = Z <code>,</code> has higher priority over <code>.</code>, so <code>f(X.Y,Z) = W</code> is: f(X) = g f(Y) = g g(Z) = W If a function isn't defined and isn't an argument of any function on the execution stack, it returns a unique function that returns itself. == Execution == Program execution: * Take input. * Check is it a valid Hakerh expression. If not, replace it with <code>_(_)</code>. * Evaluate input as Hakerh expression. * Output the result. A function call <code>f(X)</code> is evaluated by the following: * Iterate through the function definitions, starting from the first. :: Current definition will be written as <code>g(Y) = Z</code>. :* If <code>g</code> isn't <code>f</code> as the function, skip. :* If X evaluates to N and Y is N, return N. :* If X or Y evaluates to N, skip. :* Replace all instances of <code>Y</code> in <code>Z</code> with <code>X</code> and return * If no definition is found, evaluate X and return unique function which returns itself. Recursion is not only allowed, but also encouraged. == Examples == === SKI Calculus === This proves it [[meta Turing-complete]]. I(x) = x K(x,y) = x S(x,y,z) = x(z,y(z)) === Basic relations === eq(x,x) = T eq(x,y) = F !(F) = T !(x) = F or(F,F) = F or(x,y) = T and(T,T) = T and(x,y) = F nor(x,y) = !(or(x,y)) nand(x,y) = !(and(x,y)) neq(x,y) = !(eq(x,y)) apply(x,y) = x(y) === Natural numbers === let 0 N(0) = T N(S(N[x])) = T P(S(N[x])) = x N(P(0)) = F eq(S(a),S(b)) = eq(a,b) alt(0) = F alt(S(alt[x]) = F alt(x) = T nat(alt[x]) = F [[Category:Languages]] [[Category:2025]] [[Category:Functional paradigm]] [[Category:Declarative paradigm]] [[Category:Unknown computational class]] [[Category:Unimplemented]]'
New page wikitext, after the edit (new_wikitext)
''''Hakerh''' is an esolang by [[User:TBPO]] that imitates [[User:Hakerh400]]'s esolangs. I made a timestamp below to mark where my transformation into Hakerh400 begun: [[User:TenBillionPlusOne|TB]][[User talk:TenBillionPlusOne|PO]] 11:32, 15 May 2025 (UTC) == Syntax == The program consists of function definitions: f(X) = Y Where uppercase letters (except T, F and N) are any expressions. T, F and N are built-in functions that return themselves. f returns a function with name f. <code>X(Y)</code> calls function X with argument Y. <code>X[Y]</code> returns Y if <code>X[Y]</code> is T and N if isn't. === Syntactic sugar === There is some syntactic sugar to simplify and shorten the code. For example, <code>let a, b</code> is equivalement to: a(x) = a b(x) = b <code>f(X,Y)</code> is equivalement to <code>f(X)(Y)</code>, and <code>f(X,Y) = Z</code> is equivalement to: f(X) = g g(Y) = Z <code>f(X.Y) = Z</code>: f(X) = Z f(Y) = Z <code>,</code> has higher priority over <code>.</code>, so <code>f(X.Y,Z) = W</code> is: f(X) = g f(Y) = g g(Z) = W If a function isn't defined and isn't an argument of any function on the execution stack, it returns a unique function that returns itself. == Execution == Program execution: * Take input. * Check is it a valid Hakerh expression. If not, replace it with <code>_(_)</code>. * Evaluate input as Hakerh expression. * Output the result. A function call <code>f(X)</code> is evaluated by the following: * Iterate through the function definitions, starting from the first. :: Current definition will be written as <code>g(Y) = Z</code>. :* If <code>g</code> isn't <code>f</code> as the function, skip. :* If X evaluates to N and Y is N, return N. :* If X or Y evaluates to N, skip. :* Replace all instances of <code>Y</code> in <code>Z</code> with <code>X</code> and return * If no definition is found, evaluate X and return unique function which returns itself. Recursion is allowed. == Intention == There are two reasons why I created this language: * To begin the transformation into [[User:Hakerh400|Hakerh400]], * To explore the simulation of sets and types by functions. Set can be simulated by a function that returns T if value is in the set and F otherwise. Set defined in such way can also simulate type, because <code>f[x]</code> in function definition causes the definition to be used only if x is in f. == Examples == === SKI Calculus === This proves it [[meta Turing-complete]]. I(x) = x K(x,y) = x S(x,y,z) = x(z,y(z)) === Basic relations === eq(x,x) = T eq(x,y) = F !(F) = T !(x) = F or(F,F) = F or(x,y) = T and(T,T) = T and(x,y) = F nor(x,y) = !(or(x,y)) nand(x,y) = !(and(x,y)) neq(x,y) = !(eq(x,y)) apply(x,y) = x(y) === Natural numbers === let 0 N(0) = T N(S(N[x])) = T P(S(N[x])) = x N(P(0)) = F eq(S(a),S(b)) = eq(a,b) alt(0) = F alt(S(alt[x]) = F alt(x) = T nat(alt[x]) = F [[Category:Languages]] [[Category:2025]] [[Category:Functional paradigm]] [[Category:Declarative paradigm]] [[Category:Unknown computational class]] [[Category:Unimplemented]]'
Unified diff of changes made by edit (edit_diff)
'@@ -52,5 +52,11 @@ * If no definition is found, evaluate X and return unique function which returns itself. -Recursion is not only allowed, but also encouraged. +Recursion is allowed. + +== Intention == + +There are two reasons why I created this language: +* To begin the transformation into [[User:Hakerh400|Hakerh400]], +* To explore the simulation of sets and types by functions. Set can be simulated by a function that returns T if value is in the set and F otherwise. Set defined in such way can also simulate type, because <code>f[x]</code> in function definition causes the definition to be used only if x is in f. == Examples == '
New page size (new_size)
3077
Old page size (old_size)
2674
Lines added in edit (added_lines)
[ 0 => 'Recursion is allowed.', 1 => '', 2 => '== Intention ==', 3 => '', 4 => 'There are two reasons why I created this language:', 5 => '* To begin the transformation into [[User:Hakerh400|Hakerh400]],', 6 => '* To explore the simulation of sets and types by functions. Set can be simulated by a function that returns T if value is in the set and F otherwise. Set defined in such way can also simulate type, because <code>f[x]</code> in function definition causes the definition to be used only if x is in f.' ]
Unix timestamp of change (timestamp)
'1747313919'