好為人師 3.4

這段改編自 2023 年 6 月 23 日的對話。

.

教師和學生,並不是平等關係。那就可以導致,最終反目。原因是,雙方也會出於禮貌,即使在不同意對方時,也不會直斥其非、議事論事。既然不是開心見誠,無所顧忌,而是有所隱瞞,那就會導致誤會,日久累積加深。這情況在本人身上,發生不少次。有時是與學生反面,有時則是和教授,不相往來。

推而廣之,「講課」這個活動,本身是錯的;除非一些情況是,為了傳授你專業中的技術細節,予未有那些資料之人士。

但是,你毋須把那些資料提供者,標籤為「長輩」,亦不應該把資料接收者,稱呼為「晚輩」,因為,誰是資料提供者,誰是資料接收者,其實是要視乎什麼資料,哪門學問。例如,我數學比你好,傳授你數學;而你的物理則比我好,教導我物理。那樣,誰是「長輩」,誰是「晚輩」?

年紀大的為「前輩」?

如果「長輩」只是解「老一些」,那意義不大。如果「長輩」解「前輩」,則容易有錯,因為即使年紀大,也不一定是「前輩」。例如,父親不懂用智能手機,間中要我指導。

所以,「師長」和「晚輩」這些字眼,本身就有誤導之嫌。教師一直是「老師」、「長輩」的話,就一直不會有好的教學。

有些補習成功的原因,在於可以選擇教師,並不在於補習教師質素。大部分補習教師,其實也很差。但是,只要發現其質素欠佳,你可以立刻解僱更換之。

重點是,雙方也有權選擇,所以自然會,實事求是、公平合作;不構成「誰有恩於誰」,再沒有道德綁架、情感勒索。

— Me@2025-01-24 11:22:26 AM

.

.

2025.04.14 Monday (c) All rights reserved by ACHK

Euler problem 27.2.2

p_27 = -(2 * a - 1) * (a ^ 2 - a + 41)
  where
    n = 1000
    m = head $ filter (\x -> x ^ 2 - x + 41 > n) [1 ..]
    a = m - 1

Euler Problem 27 asks us to find a quadratic equation of the form (n^2 + a \cdot n + b) that generates the most consecutive prime numbers starting from n = 0, with the constraints |a| < 1000 and |b| \leq 1000. The final answer is the product a \cdot b for the winning pair. The “official” Haskell solution looks cryptic, but there’s a clever trick behind it. Let’s break it down step-by-step in a way that’s easier to follow.

A Handy Math Trick: Shifting the Quadratic

Imagine we tweak our quadratic (n^2 + a \cdot n + b) by replacing n with n - x. When we expand it out, we get:

(n - x)^2 + a(n - x) + b = n^2 + (a - 2x)n + (x^2 - ax + b)

This is still a quadratic in n, but now the coefficients are:

  • a_{\text{new}} = a - 2x
  • b_{\text{new}} = x^2 - ax + b

By choosing the right x, we can transform any quadratic into a simpler form, like n^2 + d or n^2 + n + d. This is our starting point.

Which Form Works Best?

  • Form 1: n^2 + d
    This one’s a dud. Plug in n = 0, 1, 2, 3, and you’ll see every other number is even (e.g., d, d+1, d+4, d+9). With so many evens, it can’t produce a long run of primes—primes are mostly odd (except 2).
  • Form 2: n^2 + n + d
    This is more promising. A mathematician named Rabinowitz proved that for this form to generate the longest sequence of primes, 4d - 1 must be a special number called a Heegner number. There are only six possibilities, and after testing, n^2 + n + 41 comes out on top. It spits out 40 primes from n = 0 to n = 39. The runner-up, n^2 + n + 17, doesn’t do as well.

So, n^2 + n + 41 is our golden ticket. But there’s more to it.

The Symmetry Bonus

Here’s a cool trick with n^2 + n + 41:

(-1 - n)^2 + (-1 - n) + 41 = n^2 + n + 41

This means if n = 2 gives a prime (like 47), then n = -3 (i.e., -1 - 2) does too (also 47). The sequence works both ways—positive and negative n. Starting at n = 0, we get 40 primes up to n = 39, but we can also count backward with negative n. Our goal is to shift this quadratic so we capture more of these primes from n = 0 onward, while keeping a and b within the problem’s limits.

Fitting It Into the Rules

Let’s start with n^2 + n + 41 (where a = 1, b = 41) and shift it using our trick:

  • New quadratic: n^2 + (1 - 2x)n + (x^2 - x + 41)
  • New a = 1 - 2x
  • New b = x^2 - x + 41

The problem says |a| < 1000 and |b| \leq 1000, so:

  • |1 - 2x| < 1000
  • |x^2 - x + 41| \leq 1000

The second condition is trickier because x^2 grows fast. We need the biggest x where x^2 - x + 41 \leq 1000.

Crunching the Numbers

Let’s test some x values:

  • x = 31: 31^2 - 31 + 41 = 961 - 31 + 41 = 971 (under 1000)
  • x = 32: 32^2 - 32 + 41 = 1024 - 32 + 41 = 1033 (over 1000)

So, x = 31 is the largest value that works. Now calculate:

  • a = 1 - 2 \cdot 31 = 1 - 62 = -61
  • b = 971 (from above)

Check the constraints:

  • |a| = |-61| = 61 < 1000
  • |b| = 971 \leq 1000

The Haskell Code Explained

That’s where this funky code comes in:

n = 1000
m = head $ filter (\x -> x ^ 2 - x + 41 > n) [1 ..]
a = m - 1

It finds m = 32 (first x where x^2 - x + 41 > 1000). Then x = m - 1 = 31.

The final line:

p_27 = -(2 * a - 1) * (a ^ 2 - a + 41)

This is a bit off. It uses a = 31, but we need a = 1 - 2x = -61. The correct product should be:

  • a = -61
  • b = 971
  • a \cdot b = -61 \cdot 971 = -59231

The code’s formula seems to be a typo or a leftover from a different derivation. It should just compute (1 - 2x) \cdot (x^2 - x + 41).

Why It Works

With a = -61, b = 971, the quadratic n^2 - 61n + 971 generates 71 primes from n = 0 to n = 70. This shift captures more of the n^2 + n + 41 sequence’s primes in the positive direction, thanks to the negative a. The product -59231 is the answer.

Wrapping Up

This solution is sneaky—it starts with a prime-generating champ, shifts it just right, and fits the problem’s rules. It’s not the brute-force way (testing every a and b), but a math shortcut that lands on the perfect answer. Pretty cool, right?

— Me@2025-03-24 12:25:20 PM

.

.

2025.03.30 Sunday (c) All rights reserved by ACHK

4 Basis Fields, 2

Functional Differential Geometry

.

(define e0
  (+ (* (literal-manifold-function 'e0x R2-rect)
        d/dx)
     (* (literal-manifold-function 'e0y R2-rect)
        d/dy)))

This code is misleading because:

1. The term d/dx is undefined:

1 ]=> (pp d/dx)

;Unbound variable: d/dx

2. It is defined only implicitly, making it difficult to follow:

(define-coordinates (up x y) R2-rect)

(define-coordinates (up r theta) R2-polar)

(define R2-rect-chi-inverse
  (point R2-rect))

(define R2-rect-point
  (R2-rect-chi-inverse (up 'x_0 'y_0)))

Once implicitly defined, we can print its definition:


1 ]=> (pp d/dx)
(lambda (f)
  (compose ((apply partial i) (compose f (coordinate-system '->point)))
           (coordinate-system '->coords)))

;No return value.

1 ]=> 

However, we still do not know where d/dx is defined.

— Me@2025-03-19 02:35:03 PM

.

.

2025.03.20 Thursday (c) All rights reserved by ACHK

Posted in FDG

LISP, Y Combinator, and the Fixed Point of Startup Innovation

According to Harold Abelson, one of the authors of “Structure and Interpretation of Computer Programs” (SICP), LISP can be seen as the fixed point of the process of defining a programming language, where the language itself can be used to define itself. This concept is analogous to the Y combinator in lambda calculus, which finds the fixed point of a function.

Drawing from this analogy, if LISP is considered the fixed point of the process of defining a programming language:

    • Paul Graham’s Y Combinator (the company) could be seen as the fixed point of the process of startup creation and growth. Here’s how:
      • Startup Ecosystem: Just as LISP recursively defines its own structure and operations, Y Combinator as a company recursively supports, nurtures, and grows startups. Each startup that Y Combinator backs can be seen as an iteration or instance of this process, much like how LISP functions or programs are instances of the language’s self-definition.
      • Self-Replication: Similar to how the Y combinator in lambda calculus allows functions to call themselves without explicit recursion, Y Combinator as a business model “replicates” itself through each cohort of startups it invests in. Each startup, in turn, might use the methodologies, culture, and network provided by Y Combinator to further innovate or even spawn more startups.
      • Cultural and Intellectual Capital: Y Combinator also serves as a hub for knowledge transfer, where the “fixed point” isn’t just the company but the collective wisdom, culture, and network that grows with each new company. This knowledge and network then feed back into the system, enhancing future iterations.

Therefore, according to the conceptual framework laid out by the authors of SICP, Paul Graham’s Y Combinator could be seen as the fixed point of the entrepreneurial process, where the methodology, culture, and success of one startup generation informs and shapes the next, creating a self-sustaining cycle of innovation and growth. This interpretation is not explicitly stated by Abelson or Sussman but is a logical extension of their ideas applied to business and innovation ecosystems.

— Me@2024-12-30 07:37:41 PM

.

.

2025.03.14 Friday (c) All rights reserved by ACHK

馬和小孩

這段改編自 2021 年 12 月 17 日的對話。

.

人的內置系統,即是先天而言,在愛情上是從一而終的。或者說,任何高等生物,都應該是那樣。

我有這個信念的原因是,看過一些例子:

一:

在澳洲大火中,一隻馬衝入火場,救牠的「太太」和兒子。

二:

一位父親戲弄四歲兒子,假扮和外來女子通電話。兒子相當氣憤,要告訴媽媽。

即使父親宣稱會買玩具給他,他也不肯隱瞞。

— Me@2025-03-04 07:26:55 PM

.

.

2025.03.05 Wednesday (c) All rights reserved by ACHK

Euler problem 27.1

(defparameter *primes-up-to-1000*
  (let ((sieve (make-array 1001
                           :element-type 'bit
                           :initial-element 0)))
    (loop for i from 2 to 1000
          when (zerop (sbit sieve i))
            do (loop for j from (* i i) to 1000 by i
                     do (setf (sbit sieve j) 1)))
    (loop for i from 2 to 1000
          when (zerop (sbit sieve i))
            collect i)))

(defun primep (n)
  (cond ((<= n 1) nil)
        ((<= n 1000) (member n *primes-up-to-1000*))
        (t (loop for p in *primes-up-to-1000*
                 while (<= (* p p) n)
                 never (zerop (mod n p))))))

(defun prime-sequence-length (a b)
  (loop for n from 0
        while (primep (+ (* n n) (* a n) b))
        count t))

(defun find-best-quadratic-coefficients
    (&optional (max-a 1000) (max-b 1000))
  (loop with best-length = 0
        with best-a = 0
        with best-b = 0
        for a from (- max-a) to max-a
        do (loop for b in *primes-up-to-1000*
                 when (> b max-b) do (loop-finish)
                   do (let ((len (prime-sequence-length
                                  a
                                  b)))
                        (when (> len best-length)
                          (setf best-length len
                                best-a a
                                best-b b))))
        finally (return (list best-length
                              best-a best-b))))

(defun euler-27 ()
  (destructuring-bind (len a b)
      (find-best-quadratic-coefficients)
    (format t
            "Sequence length: ~d, a: ~d, b: ~d~%"
            len a b)
    (* a b)))

(defun main ()
  (time (format t "Answer: ~d~%" (euler-27))))

; SLIME 2.28
CL-USER> (main)
Sequence length: 71, a: -61, b: 971
Answer: -59231
Evaluation took:
  0.103 seconds of real time
  0.103747 seconds of total run time (0.103637 user, 0.000110 system)
  100.97% CPU
  258,919,169 processor cycles
  0 bytes consed
  
NIL
CL-USER> 

— Me@2025-02-23 03:48:23 PM

.

.

2025.02.23 Sunday (c) All rights reserved by ACHK

Ex 1.32 Path functions and state functions, 2.4

Structure and Interpretation of Classical Mechanics

.

2. On the other hand, the path function \bar f[q] and the path function \bar \Gamma (\bar f) \circ \Gamma [q] are not necessarily the same. Explain.

4. Write programs to illustrate the behavior.

~~~

(pp Gamma)

(define ((f-bar q) t)
  (f ((Gamma q) t)))
 
(define ((Gamma-bar h-bar) local)
  ((h-bar (osculating-path local)) (time local)))

(define (q t)
  (sin t))

(define (f-bar q)
  (D q))

(define p
  (literal-function 'q))

(show-expression
 ((f-bar p) 't))

Dq(t)

(show-expression
 ((osculating-path ((Gamma p) 't_0)) 't))

q(t_0) + (t - t_0)Dq(t_0)

(show-expression
 ((Gamma-bar f-bar) ((Gamma p) 't)))

Dq(t)

(define ((GammaBar-fBar-o-Gamma f-bar) q)
  (compose (Gamma-bar f-bar) (Gamma q)))

(show-expression
 (((GammaBar-fBar-o-Gamma f-bar) p) 't))

Two paths that have the same local description up to the n-th derivative are said to osculate with order-n contact. For example, a path and the truncated power series representation of the path up to order n have order-n contact; if fewer than n derivatives are needed by a local-tuple function, the path and the truncated power series representation are equivalent.

(define (g-bar q)
  ((expt D 3) q))

(show-expression
 ((Gamma p) 't))

\left(  \begin{array}{c}  t \\  q(t) \\  Dq(t)  \end{array}  \right)

(show-expression
 ((g-bar p) 't))

((D^3 q)(t))

(show-expression
 ((osculating-path ((Gamma p) 't_0)) 't))

q(t_0) + (t - t_0)Dq(t_0)

(show-expression
 (((GammaBar-fBar-o-Gamma g-bar) p) 't))

0

— Me@2024-10-16 10:34:35 AM

.

.

2025.02.16 Sunday (c) All rights reserved by ACHK

Lisp as a Y combinator

Lisp = Process(Lisp), 1.3

.

YCombinator = a fixed point of
Lisp = Process(Lisp)

So

Lisp = Y(Process)

— Me@2025-01-09 01:09:57 PM

.

Actually, it is

Lisp_n = Process(Lisp_(n-1))

— Me@2024-12-30 10:43:36 AM

.

.

2025.02.13 Thursday (c) All rights reserved by ACHK

Where are you? 3

Utopia | 何有之鄉, 2.5

.

選擇戀愛對象的原則,並不是找「理想伴侶」,而是找厭惡得來,仍然可以遷就到的人。反過來說,必須排除那些,「不可能遷就到」的可能對象。可以遷就到的,就是缺點;想遷就也遷就不到的,就為之人格問題。

不可能遷就到,而為了保命,必須立刻超光速逃離,或者𣊬間轉移的例子有:

……

六、 浪費:

買東西之目的在於:用途、娛樂 或 收藏。

但是有些人,三樣也不是,只享受購買當刻的快感。

七、 吝嗇:

賺錢之目的在於:現在使用 或 將來使用。

但是有些人,永久不使用。

.

題外話:

饋贈他人算不算「使用」呢?

不太算。盡量少做。

小恩養貴人 大恩養仇人
幫難不幫懶 救急不救窮

試想想,不是他自己賺來的錢,他還會珍惜嗎?

— Me@2025-02-10 12:08:47 PM

.

.

2025.02.10 Monday (c) All rights reserved by ACHK

Euler problem 26.2.2

import Data.List (elemIndex, maximumBy) 
import Data.Ord (comparing)
import Data.Maybe (fromJust)

recurringCycle :: Int -> Int
recurringCycle d = remainders 1 []
  where
    remainders r rs
      | r == 0          = 0
      | s `elem` rs     = 1 + fromJust (elemIndex s rs)
      | otherwise       = remainders ((r * 10) `mod` d) (s : rs)
      where s = r `mod` d

p26 :: Int
p26 = fst $ maximumBy (comparing snd) [(n, recurringCycle n) | n <- [1,3..999], n `mod` 5 /= 0]

λ> :set +s
λ> p26
983
(0.11 secs, 29,770,480 bytes)
λ> 

— Me@2025-02-06 08:29:54 AM

.

.

2025.02.06 Thursday (c) All rights reserved by ACHK

Quick Calculation 13.5

A First Course in String Theory

.

Show that [ \bar{N}^\perp, \bar{\alpha}_{- \frac{q}{2}} ] = \frac{q}{2} \bar{\alpha}_{- \frac{q}{2}} and explain why \bar{N}^\perp is properly called a number operator.

~~~

\bar N^\perp = \sum_{p=1}^{\infty} \bar \alpha^i_{-p} \bar \alpha^i_{~p} + \sum_{k \in \mathbb{Z}^+_\text{odd}} \bar \alpha_{- \frac{k}{2}} \bar \alpha_{\frac{k}{2}}

Eq. (13.109):

\left[ \bar \alpha_{\frac{m}{2}}, \bar \alpha_{\frac{n}{2}} \right] = \frac{m}{2} \delta_{m+n, 0}

.

[AB,C]=A[B,C]+[A,C]B

\begin{aligned}  &[ \bar{N}^\perp, \bar{\alpha}_{- \frac{q}{2}} ] \\  &= \sum_{p=1}^{\infty} [ \bar \alpha^i_{-p} \bar \alpha^i_{~p}, \bar{\alpha}_{- \frac{q}{2}} ] + \sum_{k \in \mathbb{Z}^+_\text{odd}} [ \bar \alpha_{- \frac{k}{2}} \bar \alpha_{\frac{k}{2}}, \bar{\alpha}_{- \frac{q}{2}} ]  \end{aligned}

.

If q=0,

[\bar{N}^\perp, \bar{\alpha}_{- \frac{q}{2}} ] = 0

.

If q>0,

\begin{aligned}  &[ \bar{N}^\perp, \bar{\alpha}_{- \frac{q}{2}} ] \\  &= \sum_{k \in \mathbb{Z}^+_\text{odd}}\left(   \bar \alpha_{- \frac{k}{2}} [  \bar \alpha_{\frac{k}{2}}, \bar{\alpha}_{- \frac{q}{2}} ]   + [ \bar \alpha_{- \frac{k}{2}}, \bar{\alpha}_{- \frac{q}{2}} ] \bar \alpha_{\frac{k}{2}} \right)  \\  &= \sum_{k \in \mathbb{Z}^+_\text{odd}}\left(   \bar \alpha_{- \frac{k}{2}} [  \bar \alpha_{\frac{k}{2}}, \bar{\alpha}_{- \frac{q}{2}} ] \right)  + 0  \\  &=    \bar \alpha_{- \frac{q}{2}} [  \bar \alpha_{\frac{q}{2}}, \bar{\alpha}_{- \frac{q}{2}} ]   \\  &=    \bar \alpha_{- \frac{q}{2}} \frac{q}{2}  \\  \end{aligned}

.

If q<0,

\begin{aligned}  &[ \bar{N}^\perp, \bar{\alpha}_{- \frac{q}{2}} ] \\  &= \sum_{k \in \mathbb{Z}^+_\text{odd}}\left(   \bar \alpha_{- \frac{k}{2}} [  \bar \alpha_{\frac{k}{2}}, \bar{\alpha}_{- \frac{q}{2}} ]   + [ \bar \alpha_{- \frac{k}{2}}, \bar{\alpha}_{- \frac{q}{2}} ] \bar \alpha_{\frac{k}{2}} \right)  \\  &= 0 + \sum_{k \in \mathbb{Z}^+_\text{odd}}  + [ \bar \alpha_{- \frac{k}{2}}, \bar{\alpha}_{- \frac{q}{2}} ] \bar \alpha_{\frac{k}{2}}   \\  &=    \frac{q}{2} \bar \alpha_{\frac{-q}{2}}  \\  \end{aligned}

.

\bar{N}^\perp should not be called a number operator. Instead, [ \bar{N}^\perp, \cdot ] should be.

It's through the commutation relation [ \bar{N}^\perp, \bar{\alpha}_{- \frac{q}{2}} ] = \frac{q}{2} \bar{\alpha}_{- \frac{q}{2}} that we see \bar{N}^\perp functioning as a number operator, not by \bar{N}^\perp acting directly on \bar{\alpha}_{- \frac{q}{2}} operators.

— Me@2025-02-04 11:56:57 AM

.

.

2025.02.04 Tuesday (c) All rights reserved by ACHK

Logical arrow of time, 4.2

There is only one macroscopic reality in the past. For the “prediction” of the past, or the reconstruction of the past, aka postdiction, the uncertainty is a subjective ignorance of the past macroscopic data. An observer who has more data of the past will have less ignorance than other observers.

But for the prediction of the future, the uncertainty is an objective ignorance of the future microscopic state of the physical system. The ignorance of the future is objective in two senses:

In one sense, future data, by definition, does not exist for any present observers.

In another sense, the ignorance also includes the uncertainty of macroscopically indistinguishable microscopic states.

In other words, entropy is part of the objective ignorance. As in diffusion, you can see that this uncertainty about “which microstate the system is in” becomes bigger and bigger.

— Me@2013-08-10 05:26 PM

— Me@2022-04-04 06:59 PM

.

.

2025.02.01 Saturday (c) All rights reserved by ACHK

好為人師 3.3

這段改編自 2023 年 6 月 23 日的對話。

.

教師和學生,並不是平等關係。那就可以導致,最終反目。原因是,雙方也會出於禮貌,即使在不同意對方時,也不會直斥其非、議事論事。既然不是開心見誠,無所顧忌,而是有所隱瞞,那就會導致誤會,日久累積加深。這情況在本人身上,發生不少次。有時是與學生反面,有時則是和教授,不相往來。

例子 1.1:

……

例子 1.2:

然後我想起,即使當年在日校教書時,也會遇到類似的「禮貌導致反目」情形。

.

輕則就是在平日教書時,很難改善自己的教學質素;因為,學生通常也不會,如實反映。

那有很多原因,例如,除非聽者本身在該個課題上,和講者的程度相若,否則,他並不知道他的不明白,是因為講者講得不好,還是自己的理解力差於平均。

雖然有眾多原因,但其中一個,必然是「老師是長輩,不好意思批評」。你試想想,即使不知道「不明白」的真正原因,至起碼,可以反映「自己不明白」本身。那樣,教師自然對自己的教學有戒心,會研究是否講得不明白;如果是的話,他有機會修正改善。

.

重則就是即使直接問意見,聽眾也不肯回答。

我試過指派了過多功課,但我只有一半的責任;因為,我在公佈時,就已經問了他們,功課會不會太多。有一兩位學生認為,該年既然準備公開試,多一點功課好。大部分人則沒有發表意見。後來,幸好有同事提點我,有些學生在背後強烈譴責,我指派的功課過多;又或者因來不及做功課,寧願抄襲。於是,我在下一課時,立刻減少功課量。

試想想,為何寧可在背後譴責和抄襲,也不直接跟我講?

即使在我指派功課時,他們不知那是太多,在中途告訴我也可以。那樣,我就可立刻修正之。

如果不是有同事仗義告之的話,功課太多的問題,對於成績的影響,不堪設想。

.

對於師長有禮,本來是好事。但是,禮應是雙向的。師長亦應對晚輩有禮,包括知道自己,在教學方面,在沒有聽眾反饋的情況下,不會有好結果。

單向之禮是禍根。

— Me@2025-01-25 09:22:33 AM

.

.

2025.01.25 Saturday (c) All rights reserved by ACHK

Euler problem 26.1

(defun recurring-cycle (d)
  "Calculate the length of the recurring cycle for 1/d."
  (labels ((remainders (d r rs)
             (if (eql r 0)
                 0               
                 (let ((s (mod r d)))
                   (if (member s rs)
                       (1+ (position s rs))
                       (remainders d (* 10 s) (cons s rs)))))))
    (remainders d 1 nil)))

(defun p26 ()
  "Find the number below 1000 with the longest recurring cycle in its decimal representation."
  (let* ((results (loop :for n :from 1 :to 999 
                        collect (cons n (recurring-cycle n))))
         (max-pair (reduce #'(lambda (a b)
                               (if (> (cdr a) (cdr b))
                                   a
                                   b))
                           results)))
    (car max-pair)))

; SLIME 2.28
CL-USER> (p26)
983
CL-USER> 

— Me@2025-01-20 03:57:23 PM

.

.

2025.01.20 Monday (c) All rights reserved by ACHK

4 Basis Fields, 1

Functional Differential Geometry

.

3.1

… ; they measure how quickly the coordinate functions change in the direction of the vector field, scaled by the magnitude of the vector field: …

\begin{aligned}  b^i_{\chi, \mathbf{v}} &= \mathbf{v}(\chi^i) \circ \chi^{-1}   \end{aligned}

The first factor \mathbf{v}(\chi^i) is just the meaning of the definition of b^i_{\chi, \mathbf{v}}. The second factor is needed because the input of b^i_{\chi, \mathbf{v}} is x, not \mathbf{m}.

\begin{aligned}  b^i_{\chi, \mathbf{v}} (x)   &= \mathbf{v}(\chi^i) (\mathbf{m}) \\  &= \mathbf{v}(\chi^i) ( \chi^{-1} (\chi (\mathbf{m}))) \\  &= \mathbf{v}(\chi^i) \circ \chi^{-1} (x)   \end{aligned}

In other words, \mathbf{v}(\chi^i) (\mathbf{m}) is just the definition of b^i_{\chi, \mathbf{v}} (x).

.

3.2 p. 21

\displaystyle{ \textbf{v}(\text{f})(\textbf{m})} is the direction derivative of the function \displaystyle{\text{f}} at the point \displaystyle{ \textbf{m} }.

.

3.3 p. 22 Eq. (3.4):

\displaystyle{ \begin{aligned}  \textbf{v}(\text{f})(\textbf{m})  &= (D( \textbf{f} \circ \chi^{-1}) b_{\chi,\mathbf{v}}) \circ \chi)(\textbf{m}) \\  \end{aligned} }

.

4.1 p. 41 Eq. (4.1):

\displaystyle{ \textbf{v}(\text{f})(\textbf{m})    = \textbf{e}(\textbf{f})(\textbf{m})\textbf{b}(\textbf{m}) = \sum_{i} \textbf{e}_i (\textbf{f})(\textbf{m}) \textbf{b}^i(\textbf{m})}

In other words, \textbf{b}^i‘s and \textbf{e}_i‘s represent the amount and direction of changes respectively.

.

4.2 p. 33

A one-form field is a generalization of this idea; it is something that measures a vector field at each point.

One-form fields are linear functions of vector fields that produce real-valued functions on the manifold.

— Me@2025-01-17 03:59:54 PM

.

.

2025.01.19 Sunday (c) All rights reserved by ACHK

Posted in FDG

Lisp = Process(Lisp), 1.2

Lisp as a Y combinator

.

This concept ties into:

  • Metacircular Evaluators: In SICP, they introduce the concept of a metacircular evaluator, which is an interpreter for Lisp written in Lisp itself. This is a direct example of “Lisp = Process(Lisp)”, where the “Process” is the act of interpretation or implementation.

Sussman’s statement is both a philosophical and practical insight into the nature of Lisp, highlighting its self-referential capabilities and the elegance of its design in terms of theoretical computer science concepts like fixed points.

— Me@2024-12-30 10:45:35 AM

.

.

2025.01.17 Friday (c) All rights reserved by ACHK