Skip to content
This repository was archived by the owner on Sep 3, 2025. It is now read-only.
Merged

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions public/sitemap.en.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
<url>
<loc>https://ycombinator.chibicode.com/16</loc>
</url>
<url>
<loc>https://ycombinator.chibicode.com/functional-programming</loc>
</url>
<url>
<loc>https://ycombinator.chibicode.com/</loc>
</url>
Expand Down
8 changes: 2 additions & 6 deletions scripts/lib/churchEncodingParams.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,19 +145,15 @@ export const predParams = (
export const multParams = (
a: VariableNames | HighlightedVariableExpressionParams,
b: VariableNames | HighlightedVariableExpressionParams,
c: VariableNames | HighlightedVariableExpressionParams,
d: VariableNames | HighlightedVariableExpressionParams
c: VariableNames | HighlightedVariableExpressionParams
): FunctionExpressionParams => {
return {
arg: a,
body: {
arg: b,
body: {
arg: c,
body: {
arg: d,
body: [[a, [b, c]], d]
}
body: [a, [b, c]]
}
}
}
Expand Down
79 changes: 74 additions & 5 deletions scripts/lib/initialExpressionContainers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,32 @@ const yCombinator: FunctionExpressionParams = {
]
}

const yCombinatorApplicative: FunctionExpressionParams = {
arg: 'a',
body: [
{
arg: 'f',
body: [
'a',
{
arg: 'b',
body: ['f', 'f', 'b']
}
]
},
{
arg: 'f',
body: [
'a',
{
arg: 'b',
body: ['f', 'f', 'b']
}
]
}
]
}

const yCombinatorHighlighted: FunctionExpressionParams = {
arg: highlighted('a'),
body: [
Expand All @@ -395,6 +421,7 @@ const yCombinatorHighlighted: FunctionExpressionParams = {
}

export const vazr = initializeExpressionContainer(yCombinator)
export const qjod = initializeExpressionContainer(yCombinatorApplicative)

export const ekyd = initializeExpressionContainer({
checkType: 'isZero',
Expand Down Expand Up @@ -1064,6 +1091,38 @@ export const cmay = initializeExpressionContainer(
)
)

export const soer = initializeExpressionContainer(
isZeroParams('a', 'b', 'c', 'd', 'e', 'isZero', 'isNotZero', {
shorthandNumberAfterConvert: 'blank'
})
)

export const kmwe = initializeExpressionContainer(
isZeroParams(
'a',
'b',
'c',
'd',
'e',
'isZero',
'isNotZero',
numberParams(highlighted('f'), highlighted('g'), 0)
)
)

export const rryd = initializeExpressionContainer(
isZeroParams(
'a',
'b',
'c',
'd',
'e',
'isZero',
'isNotZero',
numberParams(highlighted('f'), highlighted('g'), 1)
)
)

export const rpcm = initializeExpressionContainer(
isZeroParams(
'a',
Expand Down Expand Up @@ -2122,7 +2181,7 @@ export const ajfq = initializeExpressionContainer(
)

export const hnzs = initializeExpressionContainer(
numberParamsHighlightNumber('c', 'd', 6)
numberParamsHighlightNumber('c', 'h', 6)
)

export const ibfr = initializeExpressionContainer([
Expand Down Expand Up @@ -2151,9 +2210,11 @@ export const tjcx = initializeExpressionContainer({
shorthandNumber: 6
})

export const acpu = initializeExpressionContainer(multParams('a', 'b', 'f'))

export const yuov = initializeExpressionContainer([
[
multParams('a', 'b', 'c', 'd'),
multParams('a', 'b', 'c'),
{
shorthandNumberAfterConvert: 'binarySecond'
}
Expand All @@ -2164,14 +2225,14 @@ export const yuov = initializeExpressionContainer([
])

export const ndtm = initializeExpressionContainer([
multParams('a', 'b', 'c', 'd'),
multParams('a', 'b', 'c'),
numberParams(highlighted('g'), highlighted('h'), 3),
numberParams(highlighted('e'), highlighted('f'), 2)
])

export const rovo = initializeExpressionContainer([
[
multParams('a', 'b', 'c', 'd'),
multParams('a', 'b', 'c'),
{
shorthandNumberAfterConvert: 'number',
shorthandNumber: 3,
Expand All @@ -2187,7 +2248,7 @@ export const rovo = initializeExpressionContainer([

export const wetc = initializeExpressionContainer([
[
multParams('a', 'b', 'c', 'd'),
multParams('a', 'b', 'c'),
{
shorthandNumberAfterConvert: 'number',
shorthandNumber: 3
Expand Down Expand Up @@ -2221,6 +2282,14 @@ export const tgxv = initializeExpressionContainer(numberParams('g', 'h', 3))

export const nzne = initializeExpressionContainer(numberParams('b', 'f', 1))
export const fkvc = initializeExpressionContainer(numberParams('b', 'f', 2))
export const ncdj = initializeExpressionContainer(numberParams('d', 'h', 2))
export const cdda = initializeExpressionContainer(numberParams('j', 'c', 3))
export const rtum = initializeExpressionContainer(numberParams('f', 'c', 6))

export const cteb = initializeExpressionContainer([
[multParams('a', 'b', 'f'), numberParams('j', 'c', 3)],
numberParams('d', 'h', 2)
])

export const hgjl = initializeExpressionContainer(succParams('a', 'b', 'f'))

Expand Down
73 changes: 73 additions & 0 deletions scripts/lib/runnerConfigs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -776,13 +776,56 @@ export const dvio: ExpressionRunnerShorthandConfig = {
applicativeOrder: true
}

export const mili: ExpressionRunnerShorthandConfig = {
runner: 'predefined',
showPriorities: true,
initialExpressionContainers: [
initialExpressionContainers.rtum,
initialExpressionContainers.rjyq
],
convert: 'toMathBox',
applicativeOrder: true
}

export const qyhn: ExpressionRunnerShorthandConfig = {
runner: 'simple',
showPriorities: true,
initialExpressionContainer: initialExpressionContainers.hgjl,
applicativeOrder: true
}

export const weow: ExpressionRunnerShorthandConfig = {
runner: 'simple',
showPriorities: true,
initialExpressionContainer: initialExpressionContainers.qjod,
applicativeOrder: true
}

export const pmss: ExpressionRunnerShorthandConfig = {
runner: 'simple',
showPriorities: true,
initialExpressionContainer: initialExpressionContainers.soer,
applicativeOrder: true
}

export const vdcr: ExpressionRunnerShorthandConfig = {
runner: 'runButtonOnly',
skipToTheEnd: false,
showPriorities: true,
initialExpressionContainer: initialExpressionContainers.kmwe,
applicativeOrder: true,
speed: 2
}

export const vyic: ExpressionRunnerShorthandConfig = {
runner: 'runButtonOnly',
skipToTheEnd: false,
showPriorities: true,
initialExpressionContainer: initialExpressionContainers.rryd,
applicativeOrder: true,
speed: 2
}

export const hfgh: ExpressionRunnerShorthandConfig = {
runner: 'predefined',
showPriorities: true,
Expand Down Expand Up @@ -2666,6 +2709,36 @@ export const vqyl: ExpressionRunnerShorthandConfig = {
showPriorities: true
}

export const njqi: ExpressionRunnerShorthandConfig = {
runner: 'simple',
initialExpressionContainer: initialExpressionContainers.ncdj,
showPriorities: true,
applicativeOrder: true
}

export const kdxf: ExpressionRunnerShorthandConfig = {
runner: 'simple',
initialExpressionContainer: initialExpressionContainers.cdda,
showPriorities: true,
applicativeOrder: true
}

export const anfx: ExpressionRunnerShorthandConfig = {
runner: 'runButtonOnly',
skipToTheEnd: false,
speed: 4,
initialExpressionContainer: initialExpressionContainers.cteb,
showPriorities: true,
applicativeOrder: true
}

export const nnzx: ExpressionRunnerShorthandConfig = {
runner: 'simple',
initialExpressionContainer: initialExpressionContainers.acpu,
showPriorities: true,
applicativeOrder: true
}

export const yiet: ExpressionRunnerShorthandConfig = {
runner: 'simple',
initialExpressionContainer: initialExpressionContainers.ndtm,
Expand Down
29 changes: 20 additions & 9 deletions src/components/ContentTags/Hr.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
import styled from '@emotion/styled'
/** @jsx jsx */
import { css, jsx } from '@emotion/core'
import { useContext } from 'react'
import { maxWidths, spaces, colors } from 'src/lib/theme'
import BubbleQuoteContext from 'src/components/BubbleQuoteContext'

export const Hr = styled.hr`
border-top: none;
border-left: none;
border-right: none;
border-bottom: 5px solid ${colors('white')};
margin: ${spaces(2)} auto ${spaces(2)};
max-width: ${maxWidths('xxxs')};
`
export const Hr = (props: JSX.IntrinsicElements['hr']) => {
const { inQuote } = useContext(BubbleQuoteContext)
return (
<hr
{...props}
css={css`
border-top: none;
border-left: none;
border-right: none;
border-bottom: 5px solid ${inQuote ? colors('codeBg') : colors('white')};
margin: ${spaces(2)} auto ${spaces(2)};
max-width: ${maxWidths('xxxs')};
`}
/>
)
}
Loading